{ "cells": [ { "cell_type": "markdown", "source": [ "# Basic Epidemiology Models" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "using AlgebraicPetri\n", "using AlgebraicPetri.Epidemiology\n", "\n", "using LabelledArrays\n", "using OrdinaryDiffEq\n", "using Plots\n", "\n", "using Catlab\n", "using Catlab.Graphics\n", "using Catlab.WiringDiagrams\n", "using Catlab.CategoricalAlgebra\n", "using Catlab.Programs.RelationalPrograms\n", "\n", "display_uwd(ex) = to_graphviz(ex, box_labels=:name, junction_labels=:variable, edge_attrs=Dict(:len=>\".75\"));" ], "metadata": {}, "execution_count": 1 }, { "cell_type": "markdown", "source": [ "#### SIR Model:" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "define model" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Graph(\"G\", false, \"neato\", Catlab.Graphics.Graphviz.Statement[Catlab.Graphics.Graphviz.Node(\"n1\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"box1\", :label => \"infection\")), Catlab.Graphics.Graphviz.Node(\"n2\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"box2\", :label => \"recovery\")), Catlab.Graphics.Graphviz.Node(\"n3\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:height => \"0\", :id => \"outer1\", :label => \"\", :margin => \"0\", :shape => \"none\", :style => \"invis\", :width => \"0\")), Catlab.Graphics.Graphviz.Node(\"n4\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:height => \"0\", :id => \"outer2\", :label => \"\", :margin => \"0\", :shape => \"none\", :style => \"invis\", :width => \"0\")), Catlab.Graphics.Graphviz.Node(\"n5\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:height => \"0\", :id => \"outer3\", :label => \"\", :margin => \"0\", :shape => \"none\", :style => \"invis\", :width => \"0\")), Catlab.Graphics.Graphviz.Node(\"n6\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"junction\", :fillcolor => \"black\", :height => \"0.075\", :id => \"junction1\", :label => \"\", :shape => \"circle\", :style => \"filled\", :width => \"0.075\", :xlabel => \"s\")), Catlab.Graphics.Graphviz.Node(\"n7\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"junction\", :fillcolor => \"black\", :height => \"0.075\", :id => \"junction2\", :label => \"\", :shape => \"circle\", :style => \"filled\", :width => \"0.075\", :xlabel => \"i\")), Catlab.Graphics.Graphviz.Node(\"n8\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"junction\", :fillcolor => \"black\", :height => \"0.075\", :id => \"junction3\", :label => \"\", :shape => \"circle\", :style => \"filled\", :width => \"0.075\", :xlabel => \"r\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n1\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n6\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n3\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n6\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n1\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n7\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n2\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n7\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n4\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n7\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n2\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n8\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n5\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n8\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}())], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:fontname => \"Serif\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:fontname => \"Serif\", :shape => \"ellipse\", :margin => \"0.05,0.025\", :width => \"0.5\", :height => \"0.5\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:fontname => \"Serif\", :len => \".75\"))", "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "G\n", "\n", "\n", "\n", "n1\n", "\n", "infection\n", "\n", "\n", "\n", "\n", "n6\n", "\n", "s\n", "\n", "\n", "\n", "n1--n6\n", "\n", "\n", "\n", "\n", "\n", "n7\n", "\n", "i\n", "\n", "\n", "\n", "n1--n7\n", "\n", "\n", "\n", "\n", "n2\n", "\n", "recovery\n", "\n", "\n", "\n", "n2--n7\n", "\n", "\n", "\n", "\n", "\n", "n8\n", "\n", "r\n", "\n", "\n", "\n", "n2--n8\n", "\n", "\n", "\n", "\n", "\n", "n3--n6\n", "\n", "\n", "\n", "\n", "\n", "n4--n7\n", "\n", "\n", "\n", "\n", "\n", "n5--n8\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 2 } ], "cell_type": "code", "source": [ "sir = @relation (s,i,r) begin\n", " infection(s,i)\n", " recovery(i,r)\n", "end\n", "display_uwd(sir)" ], "metadata": {}, "execution_count": 2 }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Graph(\"G\", true, \"dot\", Catlab.Graphics.Graphviz.Statement[Catlab.Graphics.Graphviz.Node(\"S_S\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"circle\", :color => \"#6C9AC3\")), Catlab.Graphics.Graphviz.Node(\"S_I\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"circle\", :color => \"#6C9AC3\")), Catlab.Graphics.Graphviz.Node(\"S_R\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"circle\", :color => \"#6C9AC3\")), Catlab.Graphics.Graphviz.Node(\"T_inf\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"square\", :color => \"#E28F41\")), Catlab.Graphics.Graphviz.Node(\"T_rec\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"square\", :color => \"#E28F41\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"S_I\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"T_inf\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"S_S\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"T_inf\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"T_inf\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"S_I\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"2\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"S_I\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"T_rec\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"T_rec\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"S_R\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\"))], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:rankdir => \"LR\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"plain\", :style => \"filled\", :color => \"white\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:splines => \"splines\"))", "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "G\n", "\n", "\n", "\n", "S_S\n", "\n", "S_S\n", "\n", "\n", "\n", "T_inf\n", "\n", "T_inf\n", "\n", "\n", "\n", "S_S->T_inf\n", "\n", "\n", "1\n", "\n", "\n", "\n", "S_I\n", "\n", "S_I\n", "\n", "\n", "\n", "S_I->T_inf\n", "\n", "\n", "1\n", "\n", "\n", "\n", "T_rec\n", "\n", "T_rec\n", "\n", "\n", "\n", "S_I->T_rec\n", "\n", "\n", "1\n", "\n", "\n", "\n", "S_R\n", "\n", "S_R\n", "\n", "\n", "\n", "T_inf->S_I\n", "\n", "\n", "2\n", "\n", "\n", "\n", "T_rec->S_R\n", "\n", "\n", "1\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 3 } ], "cell_type": "code", "source": [ "p_sir = apex(oapply_epi(sir))\n", "Graph(p_sir)" ], "metadata": {}, "execution_count": 3 }, { "cell_type": "markdown", "source": [ "define initial states and transition rates, then\n", "create, solve, and visualize ODE problem" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "u0 = LVector(S=10, I=1, R=0);\n", "p = LVector(inf=0.4, rec=0.4);" ], "metadata": {}, "execution_count": 4 }, { "cell_type": "markdown", "source": [ "The C-Set representation has direct support for generating a DiffEq vector field" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=3}", "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdd1wT9/8H8M9ddgJhkzAE2UOmKIgginuvav3V2rpH62rdo65adx21zmpbR4fVVvtta617gLIERFAQcbH3CmSQ5O73B/32a52ASe4ueT8f/QNCcvdqG3jlc3efz2EkSSIAAADAVOFUBwAAAACoBEUIAADApEERAgAAMGlQhAAAAEwaFCEAAACTBkUIAADApEERAgAAMGlQhAAAAEwaFCEAAACTBkUIAADApL1pEd6/f7+xsVEnUYDp0Gq1VEcAzANvG9AGLVlG9E2LcPLkyTdv3nzDjQBTI5fLqY4AmAfeNqC1CILQaDSvfRocGgUAAGDSoAgBAACYNChCAAAAJg2KEAAAgEmDIgQAAGDSoAgBAACYNChCAAAAJg2KEAAAgEmDIgQAAGBsVNqmx3UFSSWpcrXitU9mGyAQAAAAoA9aUlveWFncUFrSUFbSWFbS8Pc/jWq5VGQvEdm1C3OyQOJXbwSKEAAAjM3mzZsrKyupTqFLTk5O02ZOL5IVF8lKixv++4+stEJeZS2wcjCTOJpJHMwkkU6dHERSBzOJjcAKIUQQREuWqIUiBAAAY/PVV1+99dZbNjY2VAfRjeLi4k27t/wpjXc0kzqZOziaST0s23dr18XRTCoR2XPwNy0yKEIAADBCU6dO9fT0pDqFbqSnp1++cvnsmBN62j5cLAMAAIDucEyPbcVWq9UcDuf5H5w4ceKvv/6ys7ObPXu2k5OT/hIAAAAAFMI/+OCD5x/dv3//woULe/ToIZfLu3btCrcBAwAAYKzw7777rqSk5OmHSJLcsmXLF1988d577+3cudPBweGnn36iKh8AAACgV7i7u3tKSsrTD5WVlT148KBnz57N38bGxl6/fp2KbAAAAIDese3s7J4ZEZaWlvJ4PHNz8+Zv7ezsbt++/bLX12vwhRt2Ou3Y8fSDgwYNGjt2rD7iAuOgUChYLBbVKQDDwNum5UiSpDqCjpEk2YaTdARBvPAimGewVSoVn89/+iE+n69WqwmCwHEcIaRSqQQCwcter5b4KXvNXii58/SD3t7ez2wTgKep1Wp4h4DWgrdNy2EYRnUEHcMwrA3/9wmCaMlnAnZBQYGzs/PTDzk4OJAkWVxc3Px4QUHBK64atarJfWTuIu3m101qbP/dgf7gON78MQuAloO3jYlr2//9lqwsg6vV6ujoaIRQdnb2jRs3EEIWFha9evX6/vvvEUIymez3338fMWLES19PqCdaP1mS8vo9AQAAAAUFBb/88sv333+fmJio0WiojoMQQvjnn3/O4/EQQseOHVu7dm3zo+vXr9+2bdvQoUM7deoUHR3dvXv3V2yil3mlTI1+zycMkRcAAMArESShJWk6ODl8+HBISMipU6euXr06e/bsJUuWUJ0IIYTY77//fvNXc+bMUSqVzV937tz53r17iYmJ9vb2HTt2fPUmcAx9GoavTiMGu+BweBQAAAyMRGRBfXFO1f171ffvVeXl1TxqbKLp5O+lS5d+8803w4YNa/62sbGR2jzN/rfW6DPLs1paWvbv37+FWxnmiq9NJ357QgxzhSP4AACgdxXyyuyq+9mVuTnV9+9V5VnwxL42Xj42nt2cu3hZewQvD6I64IspFAqVSvXPtyKRiMIw/9DNotsYQitC8bXpxFBXGBQCAIDuydWKe9V5dyrv5VTl3q28RyLka+3la+P1jv9IX2svMc/81S9XadHBewY9geVmjg1s92whrFixYty4cTt37oyOjh42bFhkZKQhI72Mzu4+McwVX5VK/FVADnju3xwAAEBrkYh8UleYXXkvqzLnbuW9koYyTyt3f1vvXq4xs8OmSkR2rdoaQaK7tQadXMjGEULP1sG8efOGDx9++vTp+Pj4Hj16LF26dPXq1YZM9UI6K0IMoSXB+IYM7YB2cGsnAABoC7lakV2Vm1WRfafy3p3KHDHXPMDO18/GZ6hXfw9LNzbe9vUEBGy0uystliNwd3efPXv27NmzT5w48f77769YsYLydRJ0WVpvu+Of3CQSyslIexgUAgBAi5TLK2+X38mqyMmsyC6SFXtZewTY+g716r808iMrvgXV6XRMLpcLhcLmr21tbTEMo8MiOLosQhaG5gXin98mfulNi88dAABAQwRJPq7Lv11+53bF3czyu2pCE2DnF2Tv39eth7e155sM++jPzc1txIgRHTp0qK+v379//4cffshmU38QUccJJnjja9LUD+pxDzEMCgEA4G9aUnuv6sHtijsZZXeyKrIt+eIAO7/ODqGTgsY6mztSnc5wrl27duHChcLCQqFQePjw4djYWKoTIaTzIhSx0RQf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", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 5 } ], "cell_type": "code", "source": [ "prob = ODEProblem(vectorfield(p_sir),u0,(0.0,7.5),p);\n", "sol = solve(prob,Tsit5())\n", "\n", "plot(sol)" ], "metadata": {}, "execution_count": 5 }, { "cell_type": "markdown", "source": [ "#### SEIR Model:" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "define model" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Graph(\"G\", false, \"neato\", Catlab.Graphics.Graphviz.Statement[Catlab.Graphics.Graphviz.Node(\"n1\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"box1\", :label => \"exposure\")), Catlab.Graphics.Graphviz.Node(\"n2\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"box2\", :label => \"illness\")), Catlab.Graphics.Graphviz.Node(\"n3\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"box3\", :label => \"recovery\")), Catlab.Graphics.Graphviz.Node(\"n4\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:height => \"0\", :id => \"outer1\", :label => \"\", :margin => \"0\", :shape => \"none\", :style => \"invis\", :width => \"0\")), Catlab.Graphics.Graphviz.Node(\"n5\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:height => \"0\", :id => \"outer2\", :label => \"\", :margin => \"0\", :shape => \"none\", :style => \"invis\", :width => \"0\")), Catlab.Graphics.Graphviz.Node(\"n6\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:height => \"0\", :id => \"outer3\", :label => \"\", :margin => \"0\", :shape => \"none\", :style => \"invis\", :width => \"0\")), Catlab.Graphics.Graphviz.Node(\"n7\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:height => \"0\", :id => \"outer4\", :label => \"\", :margin => \"0\", :shape => \"none\", :style => \"invis\", :width => \"0\")), Catlab.Graphics.Graphviz.Node(\"n8\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"junction\", :fillcolor => \"black\", :height => \"0.075\", :id => \"junction1\", :label => \"\", :shape => \"circle\", :style => \"filled\", :width => \"0.075\", :xlabel => \"s\")), Catlab.Graphics.Graphviz.Node(\"n9\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"junction\", :fillcolor => \"black\", :height => \"0.075\", :id => \"junction2\", :label => \"\", :shape => \"circle\", :style => \"filled\", :width => \"0.075\", :xlabel => \"e\")), Catlab.Graphics.Graphviz.Node(\"n10\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"junction\", :fillcolor => \"black\", :height => \"0.075\", :id => \"junction3\", :label => \"\", :shape => \"circle\", :style => \"filled\", :width => \"0.075\", :xlabel => \"i\")) … Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n4\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n8\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n1\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n9\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n2\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n9\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n5\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n9\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n1\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n10\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n2\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n10\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n3\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n10\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n6\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n10\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n3\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n11\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n7\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n11\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}())], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:fontname => \"Serif\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:fontname => \"Serif\", :shape => \"ellipse\", :margin => \"0.05,0.025\", :width => \"0.5\", :height => \"0.5\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:fontname => \"Serif\", :len => \".75\"))", "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "G\n", "\n", "\n", "\n", "n1\n", "\n", "exposure\n", "\n", "\n", "\n", "\n", "n8\n", "\n", "s\n", "\n", "\n", "\n", "n1--n8\n", "\n", "\n", "\n", "\n", "\n", "n9\n", "\n", "e\n", "\n", "\n", "\n", "n1--n9\n", "\n", "\n", "\n", "\n", "\n", "n10\n", "\n", "i\n", "\n", "\n", "\n", "n1--n10\n", "\n", "\n", "\n", "\n", "n2\n", "\n", "illness\n", "\n", "\n", "\n", "n2--n9\n", "\n", "\n", "\n", "\n", "n2--n10\n", "\n", "\n", "\n", "\n", "n3\n", "\n", "recovery\n", "\n", "\n", "\n", "n3--n10\n", "\n", "\n", "\n", "\n", "\n", "n11\n", "\n", "r\n", "\n", "\n", "\n", "n3--n11\n", "\n", "\n", "\n", "\n", "\n", "n4--n8\n", "\n", "\n", "\n", "\n", "\n", "n5--n9\n", "\n", "\n", "\n", "\n", "\n", "n6--n10\n", "\n", "\n", "\n", "\n", "\n", "n7--n11\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 6 } ], "cell_type": "code", "source": [ "seir = @relation (s,e,i,r) begin\n", " exposure(s,i,e)\n", " illness(e,i)\n", " recovery(i,r)\n", "end\n", "display_uwd(seir)" ], "metadata": {}, "execution_count": 6 }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Graph(\"G\", true, \"dot\", Catlab.Graphics.Graphviz.Statement[Catlab.Graphics.Graphviz.Node(\"S_S\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"circle\", :color => \"#6C9AC3\")), Catlab.Graphics.Graphviz.Node(\"S_I\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"circle\", :color => \"#6C9AC3\")), Catlab.Graphics.Graphviz.Node(\"S_E\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"circle\", :color => \"#6C9AC3\")), Catlab.Graphics.Graphviz.Node(\"S_R\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"circle\", :color => \"#6C9AC3\")), Catlab.Graphics.Graphviz.Node(\"T_exp\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"square\", :color => \"#E28F41\")), Catlab.Graphics.Graphviz.Node(\"T_ill\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"square\", :color => \"#E28F41\")), Catlab.Graphics.Graphviz.Node(\"T_rec\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"square\", :color => \"#E28F41\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"S_I\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"T_exp\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"S_S\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"T_exp\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"T_exp\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"S_I\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"T_exp\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"S_E\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"S_E\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"T_ill\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"T_ill\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"S_I\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"S_I\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"T_rec\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"T_rec\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"S_R\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\"))], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:rankdir => \"LR\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"plain\", :style => \"filled\", :color => \"white\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:splines => \"splines\"))", "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "G\n", "\n", "\n", "\n", "S_S\n", "\n", "S_S\n", "\n", "\n", "\n", "T_exp\n", "\n", "T_exp\n", "\n", "\n", "\n", "S_S->T_exp\n", "\n", "\n", "1\n", "\n", "\n", "\n", "S_I\n", "\n", "S_I\n", "\n", "\n", "\n", "S_I->T_exp\n", "\n", "\n", "1\n", "\n", "\n", "\n", "T_rec\n", "\n", "T_rec\n", "\n", "\n", "\n", "S_I->T_rec\n", "\n", "\n", "1\n", "\n", "\n", "\n", "S_E\n", "\n", "S_E\n", "\n", "\n", "\n", "T_ill\n", "\n", "T_ill\n", "\n", "\n", "\n", "S_E->T_ill\n", "\n", "\n", "1\n", "\n", "\n", "\n", "S_R\n", "\n", "S_R\n", "\n", "\n", "\n", "T_exp->S_I\n", "\n", "\n", "1\n", "\n", "\n", "\n", "T_exp->S_E\n", "\n", "\n", "1\n", "\n", "\n", "\n", "T_ill->S_I\n", "\n", "\n", "1\n", "\n", "\n", "\n", "T_rec->S_R\n", "\n", "\n", "1\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 7 } ], "cell_type": "code", "source": [ "p_seir = apex(oapply_epi(seir))\n", "Graph(p_seir)" ], "metadata": {}, "execution_count": 7 }, { "cell_type": "markdown", "source": [ "define initial states and transition rates, then\n", "create, solve, and visualize ODE problem" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=4}", "image/png": "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", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 8 } ], "cell_type": "code", "source": [ "u0 = LVector(S=10, E=1, I=0, R=0);\n", "p = LVector(exp=.9, ill=.2, rec=.5);\n", "\n", "prob = ODEProblem(vectorfield(p_seir),u0,(0.0,15.0),p);\n", "sol = solve(prob,Tsit5())\n", "\n", "plot(sol)" ], "metadata": {}, "execution_count": 8 }, { "cell_type": "markdown", "source": [ "#### SEIRD Model:" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "define model" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Graph(\"G\", false, \"neato\", Catlab.Graphics.Graphviz.Statement[Catlab.Graphics.Graphviz.Node(\"n1\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"box1\", :label => \"exposure\")), Catlab.Graphics.Graphviz.Node(\"n2\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"box2\", :label => \"illness\")), Catlab.Graphics.Graphviz.Node(\"n3\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"box3\", :label => \"recovery\")), Catlab.Graphics.Graphviz.Node(\"n4\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"box4\", :label => \"death\")), Catlab.Graphics.Graphviz.Node(\"n5\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:height => \"0\", :id => \"outer1\", :label => \"\", :margin => \"0\", :shape => \"none\", :style => \"invis\", :width => \"0\")), Catlab.Graphics.Graphviz.Node(\"n6\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:height => \"0\", :id => \"outer2\", :label => \"\", :margin => \"0\", :shape => \"none\", :style => \"invis\", :width => \"0\")), Catlab.Graphics.Graphviz.Node(\"n7\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:height => \"0\", :id => \"outer3\", :label => \"\", :margin => \"0\", :shape => \"none\", :style => \"invis\", :width => \"0\")), Catlab.Graphics.Graphviz.Node(\"n8\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:height => \"0\", :id => \"outer4\", :label => \"\", :margin => \"0\", :shape => \"none\", :style => \"invis\", :width => \"0\")), Catlab.Graphics.Graphviz.Node(\"n9\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:height => \"0\", :id => \"outer5\", :label => \"\", :margin => \"0\", :shape => \"none\", :style => \"invis\", :width => \"0\")), Catlab.Graphics.Graphviz.Node(\"n10\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"junction\", :fillcolor => \"black\", :height => \"0.075\", :id => \"junction1\", :label => \"\", :shape => \"circle\", :style => \"filled\", :width => \"0.075\", :xlabel => \"s\")) … Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n6\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n11\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n1\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n12\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n2\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n12\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n3\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n12\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n4\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n12\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n7\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n12\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n3\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n13\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n8\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n13\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n4\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n14\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}()), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n9\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n14\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}())], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:fontname => \"Serif\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:fontname => \"Serif\", :shape => \"ellipse\", :margin => \"0.05,0.025\", :width => \"0.5\", :height => \"0.5\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:fontname => \"Serif\", :len => \".75\"))", "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "G\n", "\n", "\n", "\n", "n1\n", "\n", "exposure\n", "\n", "\n", "\n", "\n", "n10\n", "\n", "s\n", "\n", "\n", "\n", "n1--n10\n", "\n", "\n", "\n", "\n", "\n", "n11\n", "\n", "e\n", "\n", "\n", "\n", "n1--n11\n", "\n", "\n", "\n", "\n", "\n", "n12\n", "\n", "i\n", "\n", "\n", "\n", "n1--n12\n", "\n", "\n", "\n", "\n", "n2\n", "\n", "illness\n", "\n", "\n", "\n", "n2--n11\n", "\n", "\n", "\n", "\n", "n2--n12\n", "\n", "\n", "\n", "\n", "n3\n", "\n", "recovery\n", "\n", "\n", "\n", "n3--n12\n", "\n", "\n", "\n", "\n", "\n", "n13\n", "\n", "r\n", "\n", "\n", "\n", "n3--n13\n", "\n", "\n", "\n", "\n", "n4\n", "\n", "death\n", "\n", "\n", "\n", "n4--n12\n", "\n", "\n", "\n", "\n", "\n", "n14\n", "\n", "d\n", "\n", "\n", "\n", "n4--n14\n", "\n", "\n", "\n", "\n", "\n", "n5--n10\n", "\n", "\n", "\n", "\n", "\n", "n6--n11\n", "\n", "\n", "\n", "\n", "\n", "n7--n12\n", "\n", "\n", "\n", "\n", "\n", "n8--n13\n", "\n", "\n", "\n", "\n", "\n", "n9--n14\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 9 } ], "cell_type": "code", "source": [ "seird = @relation (s,e,i,r,d) begin\n", " exposure(s,i,e)\n", " illness(e,i)\n", " recovery(i,r)\n", " death(i,d)\n", "end\n", "display_uwd(seird)" ], "metadata": {}, "execution_count": 9 }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Graph(\"G\", true, \"dot\", Catlab.Graphics.Graphviz.Statement[Catlab.Graphics.Graphviz.Node(\"S_S\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"circle\", :color => \"#6C9AC3\")), Catlab.Graphics.Graphviz.Node(\"S_I\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"circle\", :color => \"#6C9AC3\")), Catlab.Graphics.Graphviz.Node(\"S_E\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"circle\", :color => \"#6C9AC3\")), Catlab.Graphics.Graphviz.Node(\"S_R\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"circle\", :color => \"#6C9AC3\")), Catlab.Graphics.Graphviz.Node(\"S_D\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"circle\", :color => \"#6C9AC3\")), Catlab.Graphics.Graphviz.Node(\"T_exp\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"square\", :color => \"#E28F41\")), Catlab.Graphics.Graphviz.Node(\"T_ill\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"square\", :color => \"#E28F41\")), Catlab.Graphics.Graphviz.Node(\"T_rec\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"square\", :color => \"#E28F41\")), Catlab.Graphics.Graphviz.Node(\"T_death\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"square\", :color => \"#E28F41\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"S_I\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"T_exp\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"S_S\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"T_exp\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"T_exp\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"S_I\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"T_exp\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"S_E\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"S_E\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"T_ill\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"T_ill\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"S_I\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"S_I\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"T_rec\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"T_rec\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"S_R\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"S_I\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"T_death\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"T_death\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"S_D\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:label => \"1\", :labelfontsize => \"6\"))], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:rankdir => \"LR\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:shape => \"plain\", :style => \"filled\", :color => \"white\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:splines => \"splines\"))", "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "G\n", "\n", "\n", "\n", "S_S\n", "\n", "S_S\n", "\n", "\n", "\n", "T_exp\n", "\n", "T_exp\n", "\n", "\n", "\n", "S_S->T_exp\n", "\n", "\n", "1\n", "\n", "\n", "\n", "S_I\n", "\n", "S_I\n", "\n", "\n", "\n", "S_I->T_exp\n", "\n", "\n", "1\n", "\n", "\n", "\n", "T_rec\n", "\n", "T_rec\n", "\n", "\n", "\n", "S_I->T_rec\n", "\n", "\n", "1\n", "\n", "\n", "\n", "T_death\n", "\n", "T_death\n", "\n", "\n", "\n", "S_I->T_death\n", "\n", "\n", "1\n", "\n", "\n", "\n", "S_E\n", "\n", "S_E\n", "\n", "\n", "\n", "T_ill\n", "\n", "T_ill\n", "\n", "\n", "\n", "S_E->T_ill\n", "\n", "\n", "1\n", "\n", "\n", "\n", "S_R\n", "\n", "S_R\n", "\n", "\n", "\n", "S_D\n", "\n", "S_D\n", "\n", "\n", "\n", "T_exp->S_I\n", "\n", "\n", "1\n", "\n", "\n", "\n", "T_exp->S_E\n", "\n", "\n", "1\n", "\n", "\n", "\n", "T_ill->S_I\n", "\n", "\n", "1\n", "\n", "\n", "\n", "T_rec->S_R\n", "\n", "\n", "1\n", "\n", "\n", "\n", "T_death->S_D\n", "\n", "\n", "1\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 10 } ], "cell_type": "code", "source": [ "p_seird = apex(oapply_epi(seird))\n", "Graph(p_seird)" ], "metadata": {}, "execution_count": 10 }, { "cell_type": "markdown", "source": [ "define initial states and transition rates, then\n", "create, solve, and visualize ODE problem" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=5}", "image/png": "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", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 11 } ], "cell_type": "code", "source": [ "u0 = LVector(S=10, E=1, I=0, R=0, D=0);\n", "p = LVector(exp=0.9, ill=0.2, rec=0.5, death=0.1);\n", "\n", "prob = ODEProblem(vectorfield(p_seird),u0,(0.0,15.0),p);\n", "sol = solve(prob,Tsit5())\n", "\n", "plot(sol)" ], "metadata": {}, "execution_count": 11 } ], "nbformat_minor": 3, "metadata": { "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.6.0" }, "kernelspec": { "name": "julia-1.6", "display_name": "Julia 1.6.0", "language": "julia" } }, "nbformat": 4 }