diff --git a/notebooks/hackathon_2023.07/scenario2.ipynb b/notebooks/hackathon_2023.07/scenario2.ipynb new file mode 100644 index 000000000..86e5d5eeb --- /dev/null +++ b/notebooks/hackathon_2023.07/scenario2.ipynb @@ -0,0 +1,286 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "id": "7798c424", + "metadata": {}, + "source": [ + "# Hackathon Scenario 2: Multiple Vaccines and Variants\n", + "Models from early in the Covid-19 pandemic were relatively simple, as we had no vaccines available, only NPIs to mitigate the spread of the disease, and only one strain (the original wild type) to worry about. By mid-2021, the situation was much more complex, as we had access to multiple vaccines, each with multiple doses, and the emergence of multiple variants. You are interested in modeling this situation with SV2(AIR)3 (https://www.nature.com/articles/s41598- 022-06159-x, https://doi.org/10.1038/s41598-022-06159-x), one of the first models to represent multiple Covid-19 variants, and the competition between them." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "d274fc77", + "metadata": {}, + "source": [ + "1. Extract the simplest version of the model with 1 vaccine and 1 variant (shown in Fig. 1A)\n", + "\n", + " a. (TA1 Model Extraction Workflow) Extract the model from Matlab code\n", + "โ€˜svair_simple.mโ€™ and โ€˜get_beta.mโ€™ and with the publication equations and Fig. 1A (with the exception of one small difference between code and figure). Note that in this code, the units of all state variables are in terms of fraction of the total population.\n", + " \n", + " b. (TA3 Simulation Workflow) Simulate the first 14 months of the pandemic beginning on January 1st, 2020. Consider only the Wild Type variant, and no vaccination during this period. Use parameter values from the supplementary material, for the wild type. Use the population of Ontario in 2019: 14.57 million people, and let the natural death rate ๐œ‡ = 2.05๐‘’-5. For initial conditions, let ๐ผ(0) = 1e-6, ๐‘†(0) = 1 โˆ’ ๐‘ ๐‘ข๐‘š(๐ผ(0) + ๐ด(0)), and all other values be 0. When do I(t) and A(t) peak, and what is the value of these variables at their peaks? How do the I(t) and A(t) profiles compare with Fig. 3d,f (which considered 3 variants and 2 types of vaccines)? Given that this question assumes only the presence of the Wild Type variant, do the results seem reasonable?\n", + " \n", + " c. (TA2 Domain Knowledge Grounding; ASKEM Workbench Only) Demonstrate that the domain knowledge groundings accurately reflect new concepts with the extensions such as โ€œvariantsโ€." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "0991209a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nS = y(ind); ind=ind+1; % original susceptible\\nSVR = y(ind); ind=ind+1; % lost immunity after vaccination or recovery\\nV1 = y(ind:ind+n_vax-1); ind=ind+n_vax; % one-dose vaccination\\nV2 = y(ind:ind+n_vax-1); ind=ind+n_vax; % fully vaccinated\\nI = y(ind:ind+n_var-1); ind=ind+n_var; % infected\\nIV = y(ind:ind+n_var-1); ind=ind+n_var; % infected even with vaccination\\nIR = y(ind:ind+n_var-1); ind=ind+n_var; % infected again after recovery from a different variant\\nA = y(ind:ind+n_var-1); ind=ind+n_var; % asymptomatic infections\\nAR = y(ind:ind+n_var-1); ind=ind+n_var; % asymptomatic infections after recovery from a different variant\\nR = y(ind:ind+n_var-1); ind=ind+n_var; % recovered\\nR2 = y(ind); ind=ind+1; % recovered after getting both variants\\n\\n\\n'" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import sympy\n", + "from mira.metamodel import *\n", + "from mira.modeling import Model\n", + "from mira.modeling.askenet.petrinet import AskeNetPetriNetModel\n", + "\n", + "\"\"\"\n", + "S = y(ind); ind=ind+1; % original susceptible\n", + "SVR = y(ind); ind=ind+1; % lost immunity after vaccination or recovery\n", + "V1 = y(ind:ind+n_vax-1); ind=ind+n_vax; % one-dose vaccination\n", + "V2 = y(ind:ind+n_vax-1); ind=ind+n_vax; % fully vaccinated\n", + "I = y(ind:ind+n_var-1); ind=ind+n_var; % infected\n", + "IV = y(ind:ind+n_var-1); ind=ind+n_var; % infected even with vaccination\n", + "IR = y(ind:ind+n_var-1); ind=ind+n_var; % infected again after recovery from a different variant\n", + "A = y(ind:ind+n_var-1); ind=ind+n_var; % asymptomatic infections\n", + "AR = y(ind:ind+n_var-1); ind=ind+n_var; % asymptomatic infections after recovery from a different variant\n", + "R = y(ind:ind+n_var-1); ind=ind+n_var; % recovered\n", + "R2 = y(ind); ind=ind+1; % recovered after getting both variants\n", + "\n", + "\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "716217a7", + "metadata": {}, + "outputs": [], + "source": [ + "person_units = Unit(expression=sympy.Symbol('person'))\n", + "day_units = Unit(expression=sympy.Symbol('day'))\n", + "per_day_units = Unit(expression=1/sympy.Symbol('day'))\n", + "dimensionless_units = Unit(expression=sympy.Integer('1'))\n", + "\n", + "populations = ['S', 'SVR', 'V1', 'V2', 'I', 'IV', 'IR',\n", + " 'A', 'AR', 'R', 'R2']\n", + "\n", + "c = {pop: Concept(name=pop, units=dimensionless_units)\n", + " for pop in populations}\n", + "\n", + "parameters = [\n", + " Parameter(name='beta', value=3.3e-9),\n", + " Parameter(name='beta_v1', value=0.2*3.3e-9),\n", + " Parameter(name='beta_v2', value=0.05*3.3e-9),\n", + " Parameter(name='beta_R', value=0.05*3.3e-9),\n", + " Parameter(name='gamma', value=1/28),\n", + " Parameter(name='mu', value=298.7),\n", + " Parameter(name='mu_I', value=0.001),\n", + " Parameter(name='mu_IV', value=0.15*0.001),\n", + " Parameter(name='nu_R', value=1/(4*365)),\n", + " Parameter(name='nu_v1', value=1/365),\n", + " Parameter(name='nu_v2', value=1/(4*365)),\n", + " Parameter(name='ai', value=0.5), # paper uses sigma instead of ai\n", + " Parameter(name='ai_V', value=0.85),\n", + " Parameter(name='ai_R', value=0.85),\n", + " Parameter(name='ai_beta_ratio', value=3.0)\n", + "]\n", + "\n", + "initials = {\n", + " 'S': Initial(concept=c['S'], value=1-1e-6),\n", + " 'SVR': Initial(concept=c['SVR'], value=0),\n", + " 'V1': Initial(concept=c['V1'], value=0),\n", + " 'V2': Initial(concept=c['V2'], value=0),\n", + " 'I': Initial(concept=c['I'], value=1e-6),\n", + " 'IV': Initial(concept=c['IV'], value=0),\n", + " 'IR': Initial(concept=c['IR'], value=0),\n", + " 'A': Initial(concept=c['A'], value=0),\n", + " 'AR': Initial(concept=c['AR'], value=0),\n", + " 'R': Initial(concept=c['R'], value=0),\n", + " 'R2': Initial(concept=c['R2'], value=0),\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f91e5e06", + "metadata": {}, + "outputs": [], + "source": [ + "S, SVR, V1, V2, I, IV, IR, A, AR, R, R2 = sympy.symbols('S SVR V1 V2 I IV IR A AR R R2')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "45045c21", + "metadata": {}, + "outputs": [], + "source": [ + "beta, beta_v1, beta_v2, beta_R, gamma, mu, mu_I, mu_IV, nu_R, nu_v1, nu_v2, ai, ai_V, ai_R, ai_beta_ratio = \\\n", + " sympy.symbols('beta beta_v1 beta_v2 beta_R gamma mu mu_I mu_IV nu_R nu_v1 nu_v2 ai ai_V ai_R ai_beta_ratio')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "563bef26", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "dSdt = \n", + "- sum(beta.*S.*(I_total)) \n", + "- sum(vr1.*S) \n", + "+ mu*(1-S);\n", + "\n", + "dSVRdt = \n", + "+ nu_v1.*sum(V1) \n", + "+ nu_v2.*sum(V2) \n", + "+ sum(nu_R.*R) \n", + "+ nu_R.*R2 \n", + "- sum(beta.*SVR.*(I_total)) \n", + "- mu*SVR;\n", + "\n", + "dV1dt = \n", + "+ vr1.*(S+sum(A)) \n", + "- vr2.*V1 \n", + "- nu_v1.*V1 \n", + "- sum(beta_v1.*(V1*(I_total)'),2) \n", + "- mu*V1;\n", + "\n", + "dV2dt = + vr2.*V1 - nu_v2.*V2 - sum(beta_v2.*(V2.*(I_total)'),2) - mu*V2;\n", + "dIdt = (1-ai).*(+ beta.*S.*(I_total) + beta.*SVR.*(I_total)) - gamma.*I - mu_I.*I;\n", + "dIVdt = (1-ai_V).*(+ sum(beta_v1.*(V1*(I_total)'))' + sum(beta_v2.*(V2.*(I_total)'))') - gamma.*IV - mu_IV.*IV;\n", + "dIRdt = (1-ai_R).*(+ beta_R.*Rv.*(I_total)) - gamma.*IR - mu*IR;\n", + "dAdt = ai.*(+ beta.*S.*(I_total) + beta.*SVR.*(I_total)) + ai_V.*(sum(beta_v1.*(V1*(I_total)'))' + sum(beta_v2.*(V2.*(I_total)'))') - sum(vr1).*A - gamma.*A - mu.*A;\n", + "dARdt = ai_R.*(+ beta_R.*Rv.*(I_total)) - gamma.*AR - mu*AR;\n", + "dRdt = + gamma.*(I_total) - nu_R.*R - beta_R.*Rv.*(I_total) - mu*R;\n", + "dR2dt = + sum(gamma.*(IR+AR)) - nu_R.*R2 - mu*R2;\n", + "\n", + "\"\"\"\n", + "\n", + "all_infectious = c['I'], c['IV'], c['IR'], c['A'], c['AR']\n", + "infection_rate_term = I + IV + IR + ai_beta_ratio * (A + AR)\n", + "\n", + "templates = [\n", + " # Infection asym\n", + " GroupedControlledConversion(subject=c['S'], outcome=c['A'],\n", + " controllers=all_infectious,\n", + " rate_law=ai*beta*S*infection_rate_term),\n", + " GroupedControlledConversion(subject=c['V1'], outcome=c['A'],\n", + " controllers=all_infectious,\n", + " rate_law=ai*beta_v1*V1*infection_rate_term),\n", + " GroupedControlledConversion(subject=c['V2'], outcome=c['A'],\n", + " controllers=all_infectious,\n", + " rate_law=ai*beta_v2*V2*infection_rate_term),\n", + "\n", + " # Infection sym\n", + " GroupedControlledConversion(subject=c['S'], outcome=c['I'],\n", + " controllers=all_infectious,\n", + " rate_law=(1-ai)*beta*S*infection_rate_term),\n", + " GroupedControlledConversion(subject=c['V1'], outcome=c['IV'],\n", + " controllers=all_infectious,\n", + " rate_law=ai*beta_v1*V1*infection_rate_term),\n", + " GroupedControlledConversion(subject=c['V2'], outcome=c['IV'],\n", + " controllers=all_infectious,\n", + " rate_law=ai*beta_v2*V2*infection_rate_term),\n", + " # Vaccination\n", + " # Note: structurally we want to have these in the model but we make the rates 0\n", + " NaturalConversion(subject=c['S'], outcome=c['V1'], rate_law=0*S),\n", + " NaturalConversion(subject=c['A'], outcome=c['V1'], rate_law=0*A),\n", + " NaturalConversion(subject=c['V1'], outcome=c['V2'], rate_law=0*V1),\n", + " # Recovery\n", + " NaturalConversion(subject=c['I'], outcome=c['R'], rate_law=gamma*I),\n", + " NaturalConversion(subject=c['IV'], outcome=c['R'], rate_law=gamma*IV),\n", + " NaturalConversion(subject=c['IR'], outcome=c['R'], rate_law=gamma*IR),\n", + " NaturalConversion(subject=c['A'], outcome=c['R'], rate_law=gamma*A),\n", + " NaturalConversion(subject=c['AR'], outcome=c['R'], rate_law=gamma*AR),\n", + "\n", + " # Reinfection asym\n", + " GroupedControlledConversion(subject=c['R'], outcome=c['AR'],\n", + " controllers=all_infectious,\n", + " rate_law=ai_R*beta_R*R*infection_rate_term),\n", + " # Reinfection sym\n", + " GroupedControlledConversion(subject=c['R'], outcome=c['IR'],\n", + " controllers=all_infectious,\n", + " rate_law=(1-ai_R)*beta_R*R*infection_rate_term),\n", + "\n", + " # Second recovery\n", + " NaturalConversion(subject=c['IR'], outcome=c['R2'], rate_law=gamma*IR),\n", + " NaturalConversion(subject=c['AR'], outcome=c['R2'], rate_law=gamma*AR),\n", + "\n", + " # Death\n", + " NaturalDegradation(subject=c['S'], rate_law=mu*S),\n", + " NaturalDegradation(subject=c['SVR'], rate_law=mu*SVR),\n", + " NaturalDegradation(subject=c['V1'], rate_law=mu*V1),\n", + " NaturalDegradation(subject=c['V2'], rate_law=mu*V2),\n", + " NaturalDegradation(subject=c['I'], rate_law=mu_I*I),\n", + " NaturalDegradation(subject=c['IV'], rate_law=mu_IV*IV),\n", + " NaturalDegradation(subject=c['IR'], rate_law=mu*IR),\n", + " NaturalDegradation(subject=c['A'], rate_law=mu*A),\n", + " NaturalDegradation(subject=c['AR'], rate_law=mu*AR),\n", + " NaturalDegradation(subject=c['R'], rate_law=mu*R),\n", + " NaturalDegradation(subject=c['R2'], rate_law=mu*R2),\n", + "\n", + " # Loss of immunity\n", + " NaturalConversion(subject=c['V1'], outcome=c['SVR'], rate_law=nu_v1*V1),\n", + " NaturalConversion(subject=c['V2'], outcome=c['SVR'], rate_law=nu_v2*V2),\n", + " NaturalConversion(subject=c['R'], outcome=c['SVR'], rate_law=nu_R*R),\n", + " NaturalConversion(subject=c['R2'], outcome=c['SVR'], rate_law=nu_R*R2),\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25dfad3d", + "metadata": {}, + "outputs": [], + "source": [ + "tm = TemplateModel(templates=templates\n", + " parameters={p.name: p for p in parameters},\n", + " initial_conditions=initials,\n", + "AskeNetPetriNetModel(Model(tm)).to_json_file('scenario2_a.json')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/hackathon_2023.07/scenario2_a.json b/notebooks/hackathon_2023.07/scenario2_a.json new file mode 100644 index 000000000..4888c53f4 --- /dev/null +++ b/notebooks/hackathon_2023.07/scenario2_a.json @@ -0,0 +1,1393 @@ +{ + "name": "Scenario 2a", + "schema": "https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/petrinet_v0.5/petrinet/petrinet_schema.json", + "schema_name": "petrinet", + "description": "Scenario 2a", + "model_version": "0.1", + "properties": {}, + "model": { + "states": [ + { + "id": "S", + "name": "S", + "grounding": { + "identifiers": {}, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "I", + "name": "I", + "grounding": { + "identifiers": {}, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "A", + "name": "A", + "grounding": { + "identifiers": {}, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "IV", + "name": "IV", + "grounding": { + "identifiers": {}, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "IR", + "name": "IR", + "grounding": { + "identifiers": {}, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "AR", + "name": "AR", + "grounding": { + "identifiers": {}, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "V1", + "name": "V1", + "grounding": { + "identifiers": {}, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "V2", + "name": "V2", + "grounding": { + "identifiers": {}, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "R", + "name": "R", + "grounding": { + "identifiers": {}, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "R2", + "name": "R2", + "grounding": { + "identifiers": {}, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "SVR", + "name": "SVR", + "grounding": { + "identifiers": {}, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + } + ], + "transitions": [ + { + "id": "t1", + "input": [ + "I", + "S" + ], + "output": [ + "I", + "A" + ], + "properties": { + "name": "t1" + } + }, + { + "id": "t2", + "input": [ + "IV", + "S" + ], + "output": [ + "IV", + "A" + ], + "properties": { + "name": "t2" + } + }, + { + "id": "t3", + "input": [ + "IR", + "S" + ], + "output": [ + "IR", + "A" + ], + "properties": { + "name": "t3" + } + }, + { + "id": "t4", + "input": [ + "A", + "S" + ], + "output": [ + "A", + "A" + ], + "properties": { + "name": "t4" + } + }, + { + "id": "t5", + "input": [ + "AR", + "S" + ], + "output": [ + "AR", + "A" + ], + "properties": { + "name": "t5" + } + }, + { + "id": "t6", + "input": [ + "I", + "V1" + ], + "output": [ + "I", + "A" + ], + "properties": { + "name": "t6" + } + }, + { + "id": "t7", + "input": [ + "IV", + "V1" + ], + "output": [ + "IV", + "A" + ], + "properties": { + "name": "t7" + } + }, + { + "id": "t8", + "input": [ + "IR", + "V1" + ], + "output": [ + "IR", + "A" + ], + "properties": { + "name": "t8" + } + }, + { + "id": "t9", + "input": [ + "A", + "V1" + ], + "output": [ + "A", + "A" + ], + "properties": { + "name": "t9" + } + }, + { + "id": "t10", + "input": [ + "AR", + "V1" + ], + "output": [ + "AR", + "A" + ], + "properties": { + "name": "t10" + } + }, + { + "id": "t11", + "input": [ + "I", + "V2" + ], + "output": [ + "I", + "A" + ], + "properties": { + "name": "t11" + } + }, + { + "id": "t12", + "input": [ + "IV", + "V2" + ], + "output": [ + "IV", + "A" + ], + "properties": { + "name": "t12" + } + }, + { + "id": "t13", + "input": [ + "IR", + "V2" + ], + "output": [ + "IR", + "A" + ], + "properties": { + "name": "t13" + } + }, + { + "id": "t14", + "input": [ + "A", + "V2" + ], + "output": [ + "A", + "A" + ], + "properties": { + "name": "t14" + } + }, + { + "id": "t15", + "input": [ + "AR", + "V2" + ], + "output": [ + "AR", + "A" + ], + "properties": { + "name": "t15" + } + }, + { + "id": "t16", + "input": [ + "I", + "S" + ], + "output": [ + "I", + "I" + ], + "properties": { + "name": "t16" + } + }, + { + "id": "t17", + "input": [ + "IV", + "S" + ], + "output": [ + "IV", + "I" + ], + "properties": { + "name": "t17" + } + }, + { + "id": "t18", + "input": [ + "IR", + "S" + ], + "output": [ + "IR", + "I" + ], + "properties": { + "name": "t18" + } + }, + { + "id": "t19", + "input": [ + "A", + "S" + ], + "output": [ + "A", + "I" + ], + "properties": { + "name": "t19" + } + }, + { + "id": "t20", + "input": [ + "AR", + "S" + ], + "output": [ + "AR", + "I" + ], + "properties": { + "name": "t20" + } + }, + { + "id": "t21", + "input": [ + "I", + "V1" + ], + "output": [ + "I", + "IV" + ], + "properties": { + "name": "t21" + } + }, + { + "id": "t22", + "input": [ + "IV", + "V1" + ], + "output": [ + "IV", + "IV" + ], + "properties": { + "name": "t22" + } + }, + { + "id": "t23", + "input": [ + "IR", + "V1" + ], + "output": [ + "IR", + "IV" + ], + "properties": { + "name": "t23" + } + }, + { + "id": "t24", + "input": [ + "A", + "V1" + ], + "output": [ + "A", + "IV" + ], + "properties": { + "name": "t24" + } + }, + { + "id": "t25", + "input": [ + "AR", + "V1" + ], + "output": [ + "AR", + "IV" + ], + "properties": { + "name": "t25" + } + }, + { + "id": "t26", + "input": [ + "I", + "V2" + ], + "output": [ + "I", + "IV" + ], + "properties": { + "name": "t26" + } + }, + { + "id": "t27", + "input": [ + "IV", + "V2" + ], + "output": [ + "IV", + "IV" + ], + "properties": { + "name": "t27" + } + }, + { + "id": "t28", + "input": [ + "IR", + "V2" + ], + "output": [ + "IR", + "IV" + ], + "properties": { + "name": "t28" + } + }, + { + "id": "t29", + "input": [ + "A", + "V2" + ], + "output": [ + "A", + "IV" + ], + "properties": { + "name": "t29" + } + }, + { + "id": "t30", + "input": [ + "AR", + "V2" + ], + "output": [ + "AR", + "IV" + ], + "properties": { + "name": "t30" + } + }, + { + "id": "t31", + "input": [ + "S" + ], + "output": [ + "V1" + ], + "properties": { + "name": "t31" + } + }, + { + "id": "t32", + "input": [ + "A" + ], + "output": [ + "V1" + ], + "properties": { + "name": "t32" + } + }, + { + "id": "t33", + "input": [ + "V1" + ], + "output": [ + "V2" + ], + "properties": { + "name": "t33" + } + }, + { + "id": "t34", + "input": [ + "I" + ], + "output": [ + "R" + ], + "properties": { + "name": "t34" + } + }, + { + "id": "t35", + "input": [ + "IV" + ], + "output": [ + "R" + ], + "properties": { + "name": "t35" + } + }, + { + "id": "t36", + "input": [ + "IR" + ], + "output": [ + "R" + ], + "properties": { + "name": "t36" + } + }, + { + "id": "t37", + "input": [ + "A" + ], + "output": [ + "R" + ], + "properties": { + "name": "t37" + } + }, + { + "id": "t38", + "input": [ + "AR" + ], + "output": [ + "R" + ], + "properties": { + "name": "t38" + } + }, + { + "id": "t39", + "input": [ + "I", + "R" + ], + "output": [ + "I", + "AR" + ], + "properties": { + "name": "t39" + } + }, + { + "id": "t40", + "input": [ + "IV", + "R" + ], + "output": [ + "IV", + "AR" + ], + "properties": { + "name": "t40" + } + }, + { + "id": "t41", + "input": [ + "IR", + "R" + ], + "output": [ + "IR", + "AR" + ], + "properties": { + "name": "t41" + } + }, + { + "id": "t42", + "input": [ + "A", + "R" + ], + "output": [ + "A", + "AR" + ], + "properties": { + "name": "t42" + } + }, + { + "id": "t43", + "input": [ + "AR", + "R" + ], + "output": [ + "AR", + "AR" + ], + "properties": { + "name": "t43" + } + }, + { + "id": "t44", + "input": [ + "I", + "R" + ], + "output": [ + "I", + "IR" + ], + "properties": { + "name": "t44" + } + }, + { + "id": "t45", + "input": [ + "IV", + "R" + ], + "output": [ + "IV", + "IR" + ], + "properties": { + "name": "t45" + } + }, + { + "id": "t46", + "input": [ + "IR", + "R" + ], + "output": [ + "IR", + "IR" + ], + "properties": { + "name": "t46" + } + }, + { + "id": "t47", + "input": [ + "A", + "R" + ], + "output": [ + "A", + "IR" + ], + "properties": { + "name": "t47" + } + }, + { + "id": "t48", + "input": [ + "AR", + "R" + ], + "output": [ + "AR", + "IR" + ], + "properties": { + "name": "t48" + } + }, + { + "id": "t49", + "input": [ + "IR" + ], + "output": [ + "R2" + ], + "properties": { + "name": "t49" + } + }, + { + "id": "t50", + "input": [ + "AR" + ], + "output": [ + "R2" + ], + "properties": { + "name": "t50" + } + }, + { + "id": "t51", + "input": [ + "S" + ], + "output": [], + "properties": { + "name": "t51" + } + }, + { + "id": "t52", + "input": [ + "SVR" + ], + "output": [], + "properties": { + "name": "t52" + } + }, + { + "id": "t53", + "input": [ + "V1" + ], + "output": [], + "properties": { + "name": "t53" + } + }, + { + "id": "t54", + "input": [ + "V2" + ], + "output": [], + "properties": { + "name": "t54" + } + }, + { + "id": "t55", + "input": [ + "I" + ], + "output": [], + "properties": { + "name": "t55" + } + }, + { + "id": "t56", + "input": [ + "IV" + ], + "output": [], + "properties": { + "name": "t56" + } + }, + { + "id": "t57", + "input": [ + "IR" + ], + "output": [], + "properties": { + "name": "t57" + } + }, + { + "id": "t58", + "input": [ + "A" + ], + "output": [], + "properties": { + "name": "t58" + } + }, + { + "id": "t59", + "input": [ + "AR" + ], + "output": [], + "properties": { + "name": "t59" + } + }, + { + "id": "t60", + "input": [ + "R" + ], + "output": [], + "properties": { + "name": "t60" + } + }, + { + "id": "t61", + "input": [ + "R2" + ], + "output": [], + "properties": { + "name": "t61" + } + }, + { + "id": "t62", + "input": [ + "V1" + ], + "output": [ + "SVR" + ], + "properties": { + "name": "t62" + } + }, + { + "id": "t63", + "input": [ + "V2" + ], + "output": [ + "SVR" + ], + "properties": { + "name": "t63" + } + }, + { + "id": "t64", + "input": [ + "R" + ], + "output": [ + "SVR" + ], + "properties": { + "name": "t64" + } + }, + { + "id": "t65", + "input": [ + "R2" + ], + "output": [ + "SVR" + ], + "properties": { + "name": "t65" + } + } + ] + }, + "semantics": { + "ode": { + "rates": [ + { + "target": "t1", + "expression": "I*S*ai*beta", + "expression_mathml": "ISaibeta" + }, + { + "target": "t2", + "expression": "IV*S*ai*beta", + "expression_mathml": "IVSaibeta" + }, + { + "target": "t3", + "expression": "IR*S*ai*beta", + "expression_mathml": "IRSaibeta" + }, + { + "target": "t4", + "expression": "A*S*ai*ai_beta_ratio*beta", + "expression_mathml": "ASai_beta_ratioaibeta" + }, + { + "target": "t5", + "expression": "AR*S*ai*ai_beta_ratio*beta", + "expression_mathml": "ARSai_beta_ratioaibeta" + }, + { + "target": "t6", + "expression": "I*V1*ai*beta_v1", + "expression_mathml": "IV1aibeta_v1" + }, + { + "target": "t7", + "expression": "IV*V1*ai*beta_v1", + "expression_mathml": "IVV1aibeta_v1" + }, + { + "target": "t8", + "expression": "IR*V1*ai*beta_v1", + "expression_mathml": "IRV1aibeta_v1" + }, + { + "target": "t9", + "expression": "A*V1*ai*ai_beta_ratio*beta_v1", + "expression_mathml": "AV1ai_beta_ratioaibeta_v1" + }, + { + "target": "t10", + "expression": "AR*V1*ai*ai_beta_ratio*beta_v1", + "expression_mathml": "ARV1ai_beta_ratioaibeta_v1" + }, + { + "target": "t11", + "expression": "I*V2*ai*beta_v2", + "expression_mathml": "IV2aibeta_v2" + }, + { + "target": "t12", + "expression": "IV*V2*ai*beta_v2", + "expression_mathml": "IVV2aibeta_v2" + }, + { + "target": "t13", + "expression": "IR*V2*ai*beta_v2", + "expression_mathml": "IRV2aibeta_v2" + }, + { + "target": "t14", + "expression": "A*V2*ai*ai_beta_ratio*beta_v2", + "expression_mathml": "AV2ai_beta_ratioaibeta_v2" + }, + { + "target": "t15", + "expression": "AR*V2*ai*ai_beta_ratio*beta_v2", + "expression_mathml": "ARV2ai_beta_ratioaibeta_v2" + }, + { + "target": "t16", + "expression": "I*S*beta*(1 - ai)", + "expression_mathml": "ISbeta1ai" + }, + { + "target": "t17", + "expression": "IV*S*beta*(1 - ai)", + "expression_mathml": "IVSbeta1ai" + }, + { + "target": "t18", + "expression": "IR*S*beta*(1 - ai)", + "expression_mathml": "IRSbeta1ai" + }, + { + "target": "t19", + "expression": "A*S*ai_beta_ratio*beta*(1 - ai)", + "expression_mathml": "ASai_beta_ratiobeta1ai" + }, + { + "target": "t20", + "expression": "AR*S*ai_beta_ratio*beta*(1 - ai)", + "expression_mathml": "ARSai_beta_ratiobeta1ai" + }, + { + "target": "t21", + "expression": "I*V1*ai*beta_v1", + "expression_mathml": "IV1aibeta_v1" + }, + { + "target": "t22", + "expression": "IV*V1*ai*beta_v1", + "expression_mathml": "IVV1aibeta_v1" + }, + { + "target": "t23", + "expression": "IR*V1*ai*beta_v1", + "expression_mathml": "IRV1aibeta_v1" + }, + { + "target": "t24", + "expression": "A*V1*ai*ai_beta_ratio*beta_v1", + "expression_mathml": "AV1ai_beta_ratioaibeta_v1" + }, + { + "target": "t25", + "expression": "AR*V1*ai*ai_beta_ratio*beta_v1", + "expression_mathml": "ARV1ai_beta_ratioaibeta_v1" + }, + { + "target": "t26", + "expression": "I*V2*ai*beta_v2", + "expression_mathml": "IV2aibeta_v2" + }, + { + "target": "t27", + "expression": "IV*V2*ai*beta_v2", + "expression_mathml": "IVV2aibeta_v2" + }, + { + "target": "t28", + "expression": "IR*V2*ai*beta_v2", + "expression_mathml": "IRV2aibeta_v2" + }, + { + "target": "t29", + "expression": "A*V2*ai*ai_beta_ratio*beta_v2", + "expression_mathml": "AV2ai_beta_ratioaibeta_v2" + }, + { + "target": "t30", + "expression": "AR*V2*ai*ai_beta_ratio*beta_v2", + "expression_mathml": "ARV2ai_beta_ratioaibeta_v2" + }, + { + "target": "t31", + "expression": "0", + "expression_mathml": "0" + }, + { + "target": "t32", + "expression": "0", + "expression_mathml": "0" + }, + { + "target": "t33", + "expression": "0", + "expression_mathml": "0" + }, + { + "target": "t34", + "expression": "I*gamma", + "expression_mathml": "Igamma" + }, + { + "target": "t35", + "expression": "IV*gamma", + "expression_mathml": "IVgamma" + }, + { + "target": "t36", + "expression": "IR*gamma", + "expression_mathml": "IRgamma" + }, + { + "target": "t37", + "expression": "A*gamma", + "expression_mathml": "Agamma" + }, + { + "target": "t38", + "expression": "AR*gamma", + "expression_mathml": "ARgamma" + }, + { + "target": "t39", + "expression": "I*R*ai_R*beta_R", + "expression_mathml": "IRai_Rbeta_R" + }, + { + "target": "t40", + "expression": "IV*R*ai_R*beta_R", + "expression_mathml": "IVRai_Rbeta_R" + }, + { + "target": "t41", + "expression": "IR*R*ai_R*beta_R", + "expression_mathml": "IRRai_Rbeta_R" + }, + { + "target": "t42", + "expression": "A*R*ai_R*ai_beta_ratio*beta_R", + "expression_mathml": "ARai_Rai_beta_ratiobeta_R" + }, + { + "target": "t43", + "expression": "AR*R*ai_R*ai_beta_ratio*beta_R", + "expression_mathml": "ARRai_Rai_beta_ratiobeta_R" + }, + { + "target": "t44", + "expression": "I*R*beta_R*(1 - ai_R)", + "expression_mathml": "IRbeta_R1ai_R" + }, + { + "target": "t45", + "expression": "IV*R*beta_R*(1 - ai_R)", + "expression_mathml": "IVRbeta_R1ai_R" + }, + { + "target": "t46", + "expression": "IR*R*beta_R*(1 - ai_R)", + "expression_mathml": "IRRbeta_R1ai_R" + }, + { + "target": "t47", + "expression": "A*R*ai_beta_ratio*beta_R*(1 - ai_R)", + "expression_mathml": "ARai_beta_ratiobeta_R1ai_R" + }, + { + "target": "t48", + "expression": "AR*R*ai_beta_ratio*beta_R*(1 - ai_R)", + "expression_mathml": "ARRai_beta_ratiobeta_R1ai_R" + }, + { + "target": "t49", + "expression": "IR*gamma", + "expression_mathml": "IRgamma" + }, + { + "target": "t50", + "expression": "AR*gamma", + "expression_mathml": "ARgamma" + }, + { + "target": "t51", + "expression": "S*mu", + "expression_mathml": "Smu" + }, + { + "target": "t52", + "expression": "SVR*mu", + "expression_mathml": "SVRmu" + }, + { + "target": "t53", + "expression": "V1*mu", + "expression_mathml": "V1mu" + }, + { + "target": "t54", + "expression": "V2*mu", + "expression_mathml": "V2mu" + }, + { + "target": "t55", + "expression": "I*mu_I", + "expression_mathml": "Imu_I" + }, + { + "target": "t56", + "expression": "IV*mu_IV", + "expression_mathml": "IVmu_IV" + }, + { + "target": "t57", + "expression": "IR*mu", + "expression_mathml": "IRmu" + }, + { + "target": "t58", + "expression": "A*mu", + "expression_mathml": "Amu" + }, + { + "target": "t59", + "expression": "AR*mu", + "expression_mathml": "ARmu" + }, + { + "target": "t60", + "expression": "R*mu", + "expression_mathml": "Rmu" + }, + { + "target": "t61", + "expression": "R2*mu", + "expression_mathml": "R2mu" + }, + { + "target": "t62", + "expression": "V1*nu_v1", + "expression_mathml": "V1nu_v1" + }, + { + "target": "t63", + "expression": "V2*nu_v2", + "expression_mathml": "V2nu_v2" + }, + { + "target": "t64", + "expression": "R*nu_R", + "expression_mathml": "Rnu_R" + }, + { + "target": "t65", + "expression": "R2*nu_R", + "expression_mathml": "R2nu_R" + } + ], + "initials": [], + "parameters": [ + { + "id": "ai", + "value": 0.5 + }, + { + "id": "beta", + "value": 3.3e-09 + }, + { + "id": "ai_beta_ratio", + "value": 3.0 + }, + { + "id": "beta_v1", + "value": 6.600000000000001e-10 + }, + { + "id": "beta_v2", + "value": 1.6500000000000002e-10 + }, + { + "id": "gamma", + "value": 0.03571428571428571 + }, + { + "id": "ai_R", + "value": 0.85 + }, + { + "id": "beta_R", + "value": 1.6500000000000002e-10 + }, + { + "id": "mu", + "value": 298.7 + }, + { + "id": "mu_I", + "value": 0.001 + }, + { + "id": "mu_IV", + "value": 0.00015 + }, + { + "id": "nu_v1", + "value": 0.0027397260273972603 + }, + { + "id": "nu_v2", + "value": 0.0006849315068493151 + }, + { + "id": "nu_R", + "value": 0.0006849315068493151 + } + ], + "observables": [], + "time": { + "id": "t" + } + } + }, + "metadata": { + "annotations": { + "license": null, + "authors": [], + "references": [], + "time_scale": null, + "time_start": null, + "time_end": null, + "locations": [], + "pathogens": [], + "diseases": [], + "hosts": [], + "model_types": [] + } + } +} \ No newline at end of file