{ "cells": [ { "cell_type": "markdown", "source": [ "# Ross-Macdonald Malaria Modeling" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "Authors: Sean L. Wu and Sophie Libkind" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "using AlgebraicDynamics\n", "using Catlab.WiringDiagrams, Catlab.Graphics\n", "\n", "using LabelledArrays\n", "\n", "using DelayDiffEq, DifferentialEquations\n", "using Plots" ], "metadata": {}, "execution_count": 1 }, { "cell_type": "markdown", "source": [ "The Ross-Macdonald (RM) model is the canonical model of malaria transmission, first expressed by\n", "Sir Ronald Ross in 1911. The simplest form of the model is given by a system of 2 nonlinear ordinary\n", "differential equations describing $Z$, parasite prevalence in the mosquito vector population, and $X$,\n", "parasite prevalence in the vertebrate host population:\n", "$$ \\dot X = mazbZ(1 - X) - rX, \\quad \\dot Z = acX (e^{-gn} - Z) - gZ \\quad (1)$$" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "The RM model is of supreme importance to modeling of malaria and other mosquito transmitted diseases\n", "because it is the simplest model that retains the fundamental processes involved in transmission: recovery\n", "of infected hosts, death of infected mosquitoes, and parasite transmission between discordant pairs of\n", "vectors and hosts. In this sense it represents the irreducible complexity to modeling mosquito borne\n", "diseases, such that any simpler model would be insufficient." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "The model assumes that mosquitoes take bloodmeals (bites) on vertebrate hosts with rate $a$.\n", "Therefore, the per-capita rate at which susceptible mosquitoes become infected is $acX$, where $c$\n", "is the transmission efficiency from infectious humans to susceptible mosquitoes (probability of\n", "parasites successfully invading the mosquito given a bite occurs) and $X$ is the probability the\n", " bite lands on an infectious human. $1-Z$ is the proportion of mosquitoes who are susceptible but\n", "given an incubation period of $n$ days during which mosquitoes suffer per-capita mortality at rate\n", "$g$, only a proportion $e^{-gn}$ survive incubation to become infectious. Therefore the classic\n", "RM model will have statics that are consistent with the incorporation of an incubation period of\n", "fixed duration, but dynamics will not, as the delay is not incorporated into the equations." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "Susceptible humans acquire infection at a rate $mabZ$, where $m = M/H$, the ratio of mosquitoes to\n", "humans, $a$ is as before, and $b$ is the transmission efficiency from infectious mosquitoes to\n", "susceptible humans. Therefore $mabZ$ gives the per-capita rate at which susceptible humans recieve\n", "parasites from the mosquito population. Infectious humans recover at a rate $r$ (the rate at which the\n", "immune system clears parasites). Because $m$ is considered a constant parameter, the model ignores\n", "seasonal fluctuations in mosquito (or host) population sizes. However, because the timescale of host\n", "dynamcis is typically slow in relation to mosquito dynamics, the approximation is often suitable\n", "over a transmission season." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "The model's threshold criterion between the trivial equilibrium where both $Z,X$ are equal to zero\n", "(no disease) and the endemic equilibrium can be expressed by the basic reproductive number, giving\n", "the expected number of secondary infections arising from the introduction of a single infectious human,\n", "$$R_0 = \\frac{ma^2bce^{-gn}}{rg}.$$ The endemic equilibrium is therefore:\n", "$$\\bar{X}= \\frac{R_{0}-1}{R_{0} + \\frac{ac}{g}}, \\quad \\bar{Z} = \\frac{ac\\bar{X}}{g + ac\\bar{X}} e^{-gn}.$$" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "From these equations, the nonlinear relationships that characterize observed malaria transmission can be\n", "understood. We implement them as follows:" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "## Diagram of Systems\n", "First we must construct a diagram of systems which describes the interaction between the mosquito and\n", "host populations. The arrows between the two subsystems represents the bidirectional infection during bloodmeals." ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Catlab.Graphics.Graphviz.Graph(\"G\", true, \"dot\", Catlab.Graphics.Graphviz.Statement[Catlab.Graphics.Graphviz.Subgraph(\"\", Catlab.Graphics.Graphviz.Statement[Catlab.Graphics.Graphviz.Node(\"n0out1\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"out1\")), Catlab.Graphics.Graphviz.Node(\"n0out2\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"out2\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n0out1\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n0out2\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}())], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:rank => \"sink\", :rankdir => \"LR\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:style => \"invis\", :shape => \"none\", :label => \"\", :width => \"0.333\", :height => \"0\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:style => \"invis\")), Catlab.Graphics.Graphviz.Node(\"n1\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:color => \"black\", :comment => \"mosquitos\", :fillcolor => \"white\", :id => \"n1\", :label => Catlab.Graphics.Graphviz.Html(\"\\n\\n\\n\\n
mosquitos
\"), :style => \"solid\")), Catlab.Graphics.Graphviz.Node(\"n2\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:color => \"black\", :comment => \"humans\", :fillcolor => \"white\", :id => \"n2\", :label => Catlab.Graphics.Graphviz.Html(\"\\n\\n\\n\\n
humans
\"), :style => \"solid\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n1\", \"out1\", \"s\"), Catlab.Graphics.Graphviz.NodeID(\"n2\", \"in1\", \"n\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"z\", :id => \"e1\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n2\", \"out1\", \"s\"), Catlab.Graphics.Graphviz.NodeID(\"n1\", \"in1\", \"n\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"x\", :id => \"e2\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n1\", \"out1\", \"s\"), Catlab.Graphics.Graphviz.NodeID(\"n0out1\", \"n\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"z\", :id => \"e3\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n2\", \"out1\", \"s\"), Catlab.Graphics.Graphviz.NodeID(\"n0out2\", \"n\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"x\", :id => \"e4\"))], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:fontname => \"Serif\", :rankdir => \"TB\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:fontname => \"Serif\", :shape => \"none\", :width => \"0\", :height => \"0\", :margin => \"0\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:arrowsize => \"0.5\", :fontname => \"Serif\"))", "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "G\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "n1\n", "\n", "mosquitos\n", "\n", "\n", "\n", "\n", "n1:s->n0out1:n\n", "\n", "\n", "\n", "\n", "\n", "\n", "n2\n", "\n", "humans\n", "\n", "\n", "\n", "\n", "n1:s->n2:n\n", "\n", "\n", "\n", "\n", "\n", "\n", "n2:s->n0out2:n\n", "\n", "\n", "\n", "\n", "\n", "\n", "n2:s->n1:n\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 2 } ], "cell_type": "code", "source": [ "rm = WiringDiagram([], [:mosquitos, :humans])\n", "mosq_box = add_box!(rm, Box(:mosquitos, [:x], [:z]))\n", "human_box = add_box!(rm, Box(:humans, [:z], [:x]))\n", "output_box = output_id(rm)\n", "\n", "add_wires!(rm, Pair[\n", " (mosq_box, 1) => (human_box, 1),\n", " (human_box, 1) => (mosq_box, 1),\n", " (mosq_box, 1) => (output_box, 1),\n", " (human_box, 1) => (output_box, 2)]\n", ")\n", "\n", "\n", "to_graphviz(rm)" ], "metadata": {}, "execution_count": 2 }, { "cell_type": "markdown", "source": [ "## ODE Model\n", "Next we implement the concrete mosquito and host dynamics given in Equation (1), and apply them to the diagram\n", "of systems. This composition is the complete Ross-Macdonald model which we can solve and plot." ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "#3 (generic function with 1 method)" }, "metadata": {}, "execution_count": 3 } ], "cell_type": "code", "source": [ "dZdt = function(u,x,p,t)\n", " Z = u[1]\n", " X = x[1]\n", " [p.a*p.c*X*(exp(-p.g*p.n) - Z) - p.g*Z]\n", "end\n", "\n", "dXdt = function(u,x,p,t)\n", " X = u[1]\n", " Z = x[1]\n", " [p.m*p.a*p.b*Z*(1 - X) - p.r*X]\n", "end" ], "metadata": {}, "execution_count": 3 }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "" }, "metadata": {}, "execution_count": 4 } ], "cell_type": "code", "source": [ "mosquito_model = ContinuousMachine{Float64}(1, 1, 1, dZdt, (u,p,t) -> u)\n", "human_model = ContinuousMachine{Float64}(1, 1, 1, dXdt, (u,p,t) -> u)\n", "\n", "malaria_model = oapply(rm,\n", " Dict(:humans => human_model, :mosquitos => mosquito_model)\n", ")" ], "metadata": {}, "execution_count": 4 }, { "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "┌ Warning: Using arrays or dicts to store parameters of different types can hurt performance.\n", "│ Consider using tuples instead.\n", "└ @ SciMLBase ~/.julia/packages/SciMLBase/VS2ST/src/performance_warnings.jl:32\n" ] } ], "cell_type": "code", "source": [ "params = LVector(a = 0.3, b = 0.55, c = 0.15,\n", " g = 0.1, n = 10, r = 1.0/200, m = 0.5)\n", "\n", "u0 = [0.1, 0.3]\n", "tspan = (0.0, 365.0*2)\n", "\n", "prob = ODEProblem(malaria_model, u0, tspan, params)\n", "sol = solve(prob, Tsit5());" ], "metadata": {}, "execution_count": 5 }, { "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "┌ Warning: To maintain consistency with solution indexing, keyword argument vars will be removed in a future version. Please use keyword argument idxs instead.\n", "│ caller = ip:0x0\n", "└ @ Core :-1\n" ] }, { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=4}", "image/png": "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MDAwLy8vPT1dr9fHxsbOmzdPXGfGjBkPPPCAFUslIiJqfeaD8NChQwqFQqFQXL58+fLlywD8/PwAHDhwwLjOsGHDrFMiERGR5ZgPwqNHj1q5DiIiIpu49ZlliIiI2jEGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQny3VdVFS0Z88emUz28MMPy+Xyhivo9foLFy7cvHkzOjraycmClRARETXGUvGTlZXVv3//+++/X6vVLl269MiRIwEBAaYrXLx4sW/fvh4eHhqNpqioSKFQWKgSIiKiJlhq02hCQsKQIUMSExO//fbb3r17f/DBB/VWCAsLu3z58unTpy1UABERUXNYKgh37tw5ceJEcTkmJiYpKaneCu7u7iqVykI/nYiIqJkstWk0Ozs7JCREXA4JCVGr1X+4q+Kc4rGfj/3Q50PxplQqnTp1qpubWytUSRaj1Wr1er1MJrN1IdQCer1eq9VqtVpbF0Itw1Frgkwmk0pvMeWzVBDq9XqJRGKsQ6fT/eGuqiqrBqgHbDu8rcK1AoCrq+sjjzzi7OzcOoWSZegNbF0ItQBHzU5x1JpwyxSE5YJQpVJpNBpxOScnJzg4+A93FRoaKoHk/VnvY2grFUeWJ5PJ9Ho9J+72RXz/ylGzOzqdjqN2Oyy1jzA6Ojo5OVlcTk5Ojo6OFpfz8/P/4OzwVCtVRkREZMJSM8JFixYNGDDAw8NDp9N99dVXx48fF9uDgoLS0tIGDRpUW1v75JNPVlRUAFi4cGGHDh3WrFnTVI/HLVQpERE5NEsFYVRU1PHjx7dt2yaRSE6cOBEeHi62r1+/PjIyEoBEIrnnnnsAPPjggwBu/YH6YxaqlIiIHJpEEARb13ALLzz/wor3VrhWu+ImEGjraqh5xKNGud/Cvuj1+urqag8PD1sXQi1TVlbm6elp6yrsmB2ca1SQCDdCbwDAYVuXQkRE7Y4dBCGArLAsAPje1nUQEVG7Yx9BeL3TdQD4j63rICKidsc+gjDrjiy4AqeAQluXQkRE7Yt9BKHOWYf7AT2QZutSiIiofbGPIASAEQCAZBtXQURE7Yz9BOEoAMBuoK1/3IOIiOyJ/QRhT+AOIJunmCEiotZkP0EI4FEAQKKNqyAiovbEroJwMgBgK1Br40KIiKjdsNS5RluRk95pyidTcAAA4A5kAf0AZZOPGQisaOSufcCqFu5o9AA+BMxeSKocmAPkt6Q3AHHAtEbuWgd83cLeQoANgNnrM/4KxAPVLelNCvwf0L+Re58DfmpWN06Ck0yQQcqxMLDdWPzuVmMhrZW61rqimVdTbmdj0fR1baXAC0BfAEBFg8euBM63sLwuwMxG7joJfGnueVELNHLNQQ9nD8wGXADvBvdVA/8EShuvRG+YWkjx+9DfD9xneHhF3fWPAmcb762hWsADGNnItKsI2Nfo71W/H3E1CdAXCDC5y8dkeT+QC5he4igRuP8WfdtBEEoESfiv4fjVpOnkrR7zW5NP+NSWF/FMI0/4G0Biy2eoysaf8F8D+1rYmwuwqu6/hdEpYFcLewMwrJEXXwHY3NxXNwkkEkgAjoWB7cbid2IAmCoxvLh8BaRCAomsuTEIAIgAugIAdCYvtbXA1UZeypv2C/CpuRHUAqeAkhb2BmAHIDHXXgOUt7y3Ay1/SBOOAZ+1WmdSSG/9qtgiF4BPWrXDc63aW1ZLVr5+6yC0j5Nu98jrMWXKFADIA2YAAD4F/Bt/TI9GXowA1ABHgJqWVOAL9G783ostHBUZcC/QoZF7i4ETLXw1DwciGrlLAH4EilvSmxtwPxp9MVQDF5rVjU6nq62tdXFxccSxqDX8zcWYqQSqAAE4BpQBACpN3gKXm/yIckN4iKEiAApAAlQBlYZ1Sg3vdquBcqDS5M1vlcld4l+1tsHbeTJL0vi/gekKWkACuAKude8VWjinkAKBgItJizOgB5yAGsP/j/if4AToARmgA1zqPkQkAwToJXpZsAzuDZ7sUkAA9ECVuQfqAQngYpg36w3/ZhIgAHACZIATUO8c7NVAPlAL6AydmOVsmGS7AoGAbyOrCYDaXHkNGX99Z+DOuvNL44lWZEAhkAuYnoF8IRB2i77tYEYoSITfIn7DcMPt74B/Az8C//hD3bkAg1qtNgDoanhT3CoUwNDW600C9Gu93gCEACHNWlHQCrX6WjR98QmrjYX4yqIFygzfARQCemC/4UlonBuJT6oyk/XLDXOIGpOpT6XhgXqTyUpp3W0ybY13gxmSl8lrgDsEV0EQBKlUWmdbk6e5DYxOgJfJTRkgNyxLAUWD9TuYexEH4Fr3dVZu7k2Yc93XtSbKaKwHkQRwBgRAa+5PYc8qyyp59YnbYQdBWN/fgK3AOuC5RjaRkb0TI6fIMOkpAaqBUsO+mWJADxSZTLyKAKHu9Ev8buzHyls9JIZdNWLMuAHuAACF4W2saSqYRpHxRdzb8KotvriZpoVX3WetaVcehpmKO/73FqRhTjSpVl/LyzCRA7LDIOwFTAC+Bl5q7a3YdPuKgQqgEhKNRFoq/d/8qQSoACqAIqAKqGg82/7YzptbEpPJyZAiYjaIYWNMKWPAeBu2g7nU/S7GjHHqYwwb0wmQ2ckTEbVtdhiEAP4OJAGbgLjW3rZGAEpNvoqAEqAMKAXKgEKgDCgj3wDaAAANoklEQVQHyoFCoByoMERdZZ0Mc7qdfy0xchSAK+AJeAEugMKQPeK0ycdk4iXOtEynX+J3Yz929SkhIrIy+wzCzsBS4P+AOOBE3WNnyZQ4zRK/ig3fS4BioNiQc8WGJCsDSm57Q6IX4AF0gKAQBHdB6iWFHPAEPABPQAG4AR0AL8AVkDfItib2BhERWYZ9BiGAZcBu4DgQCyQ50vaoYqAAKAIKgULDQrFhwRh7YqQ18eGhJohB5QXIAW/AC/AE5IAXoAA8DV/e/8u8OlFnoNPq9Hq9m1vTR8sQEdme3QahM/A10BdIAaYAXzQ4oNmO1AL5QIHhu+lXYd2FwhYezS9uPPQBvAFvQA4oDN8VhpyTGzJPzDZuSCQiB2O3QQigI7AbGA58DeQA/wZCbV1SPdVAHpAP5AMak+V8k+TLb+HVhhWAj8mXt8mXou5N75YdMUhE5JjsOQgB3AMcAMYC6cDdwCvAk4aDAC2tCMgF8gANkA/kAHmGr3zDXc3cMikFlIAvoGzky8fkO6drREStys6DEEAv4CTwF+Bb4DngDWAaMB4YgFt8mrsxOiDfkGcaQ6SJX7kmN5tzPhQXwA/wBXwBP8DfsGz8MuYfERHZiP0HIQB/YDuQDCwHjgLvA+8DzkB3oDMQCvgBHUxOoVRjODdVBVBscoyJuK2yqHk/VA4EmsRbAOAP+BmSzx/wNznXBhERtVXtIghFfwb+DJwEtgEpwFngDHCm5f3ITOZwfoa08zNknvGm/R6bQ0REJtpREIr6AH2At4By4GfgV+AGkG/46LdIPFeIeNoqH8MxJsadcNxQSUTkSNpdEBp1APq19imniYio3eExiERE5NDsIAjz8vIKCgpsXQW1zNWrV8+fb+lFu8nGcnJyTpw4YesqqGWKi4sPHz5s6yrsmx0E4fnz58+da93LG5PF7dix49NPP7V1FdQy+/fvX7t2ra2roJY5duzYW2+9Zesq7JsdBCHZI0Gw8jUAqRVw1MgxMQiJiMihMQiJiMihSdr+xpCuXbvm5eX17t3b1oVQC1y/fr2qqioyMtLWhVAL3Lx5My8v7+6777Z1IdQCBQUFV69e7dOnj60LaaMeffTR+fPnN72OHQThvn37srKyQkPb2qUlqCklJSVardbX19fWhVALVFRUlJaWBgYG2roQagGtVpuTk8NXyMaEh4dHREQ0vY4dBCEREZHlcB8hERE5NAYhERE5NAYhERE5NAYhERE5NNmKFStsXUNTioqKvv3224sXL95xxx0uLi62LofqyMzMTE1NPXv2rJeXl7e3t7G9pKRkx44d586d69ixo5ubm7H99OnTe/bsqa6u5hFuNicIwsGDB2tqavz8/MQWnU6XkpLy/fffK5VKhUJhXDMzM3PHjh1qtbpTp04ymcxG9RKqq6vFASovLw8NDZVIJAC0Wu3evXuPHDni5+cnl/9+KfBr167t2LHj5s2b4eHhUiknPLcitGHXr18PDg6eNGnS2LFjIyIiNBqNrSui3yUmJvr6+k6YMCE2NlYul2/atElsv3nzZlhY2Pjx4ydMmNCxY0e1Wi22JyQkBAcHz5s3Lzw8/IUXXrBd4SQIgvDJJ584OTktWLBAvKnX6x966KF+/frNmTNHqVTu379fbD906JCPj8/s2bP79+8/ZMgQnU5nu5IdWmZmZpcuXQYMGDBr1qx77733119/FQRBq9UOGjTo/vvvnz17tlKp/P7778WV9+3bp1Qq58yZ069fv4cffri2ttamtduBNh2ECxcufPzxx8Xl8ePHv/rqqzYth+rIzs4uLy8Xlz/77DOVSiUuL1u2bOLEieLy1KlTn3/+eUEQysvLvb29jx49KgjC1atX3dzcbty4YYuqSRAEITs7u3v37lOnTjUG4e7du8PDwysrKwVBWLt27cCBA8X2IUOGvPPOO4IgVFdXR0ZG7tixw1Y1O7iRI0c+88wz9Rq//vrrrl27VldXC4KwevXq4cOHi+39+/f/4IMPBEGoqKjo1KlTSkqKlau1O216yrxz586JEyeKyzExMUlJSbath0ypVCoPDw/jslarFZeTkpIajlp6erqXl9e9994LICwsrGfPnnv37rVF1QQATz311Ouvv266NTspKWn06NHiduyJEyd+//33hYWF5eXlBw8ejImJAeDi4jJ27Fg+B22isLBw7969zz333A8//HDs2DGdTie2JyUljR07VtxnFBMTk5aWVllZqdFojhw5Ij4H3d3dR40axVG7pTZ9hfrs7OyQkBBxOSQkRK1W27YeMkuv17/++utz5swRb6rV6oajplarTfcLcjRtaMuWLU5OTo888khqaqqxUa1W9+/fX1wOCAhwcXFRq9Wurq4AgoODxfaQkJALFy5Yv2DKyMhwc3ObPn16QEDA1atXJRJJWlqaXC5Xq9U9e/YU1xGfdNnZ2WVlZS4uLv7+/sb2kydP2qx0O9F2Z4SCIOj1enGHMACZTGZ8H0RthyAITz/9tE6nW758udhidtRMGwE4OTlxNG0iLy9vxYoV7777br12vV5vekiFVCrV6XTiqPE5aHNVVVWVlZWPP/74V199dezYMXd39zVr1qDuqEmlUolEIo6a6VBy1Jqj7c4IJRJJUFCQRqMRb+bk5BjfmVLbsXjx4hMnTqSmprq7u4stKpWq4aipVKrc3Fzjo27evDl8+HDrV0v/+te/nJ2dX331VQDp6ekSiWTlypUvvfSS6QAVFxdXVVUFBwe7uLjU1tbm5eWJZx/NyclRqVS2rN5RiU+iwYMHA5BKpYMGDRKvVW46ahqNpra2Njg4uLS0tKqqqqSkRDyIlKPWHG13RghgyJAhKSkp4nJKSkp0dLRNy6H6li1btn///j179pgetx0dHZ2cnCwuG0etf//+WVlZGRkZAIqKio4fP87RtIlx48atWLFi+PDhw4cPDw0N7dix43333QcgOjo6NTVVEAQAKSkpUVFRAQEB3t7evXr1Ep+DgiCkpqYOGTLExr+AQwoLC4uIiLhy5Yp48/Lly+KOBtNRS05Ovueee7y8vFQqVdeuXcVRq62t3bdvH0ft1mx6qM4tnDlzRi6Xv/zyy0uWLFEqlRkZGbauiH63ZcsWADExMX8xqKioEAThl19+8fb2Xrp06bJlyxQKxc8//yyuv3Dhwh49eiQkJAwcODA2NtamtZMgCML8+fONR41WVVV169btscceW716dWBg4JYtW8T2xMREf3//VatWTZs2LTIyUhxisr7NmzffcccdCQkJCxcuDAgIuHbtmiAIZWVlERERM2bMWLVqlZ+f3zfffCOu/NlnnwUFBa1evXry5MlRUVHiYaXUhLZ+9YmLFy9u27ZNJpNNmzYtPDzc1uXQ786dO3f48GHTlri4OPEAtitXrvz73/8WBGHKlCl33XWXeK8gCImJiSdPnuzatev06dOdnNruZnkHIW4aHThwoHizqKho48aN+fn5I0aMGDRokOlqe/fuVSqVcXFxSqXSRsUSDh06lJyc7OvrO3XqVOOlsvLz8zdt2lRYWDhq1KgBAwYYVz548GBqaqq/v/+sWbNMT49AZrX1ICQiIrKoNr2PkIiIyNIYhERE5NAYhERE5NAYhERE5NAYhERE5NAYhERE5NAYhERt3YEDB/bs2WPrKojaLX6OkKgNKS8v/+KLL4YMGWI8EQGA8ePHazSaeqcvIKLWwrN7ELUhRUVF8+bN27x5s2kQTp8+vaKiwoZVEbVvDEKitm7SpElm28vKyrRarY+Pj7GloKDAy8vL2dm54cqVlZXFxcVKpVI8DR4RGXEfIVFbcf78+aioKADz589XKpVKpfKLL74AMGvWrHHjxonr/Pjjj0qlcvv27WPGjJHL5UqlctiwYfn5+adOnerZs6evr6+np+ezzz5bW1tr7DYjI2Ps2LFyuVylUimVyvj4+JqaGpv8gkRtE4OQqK0ICwtbt24dgKeeeurLL7/88ssvxQvoFBQU5OXlievodLrCwsIFCxb06dPnyJEjGzdu/OGHH+bMmRMbG7tgwYLjx48vWbIkISEhMTFRXD83N/fBBx/MzMzcvn37+fPn33333Y0bNz799NO2+h2J2iBuGiVqKzw9PR988EEAUVFRTV+4eMyYMeLFde+9997//Oc/mzZt+vTTT2fMmAGgb9++iYmJO3bseOyxxwCsXr26tLT0xIkTQUFBALp3715RUbF48eI33njD19fXGr8VUZvHICSyP3/+85+Ny5GRkQBGjBhh2pKZmSkuJycnR0REnDt3TrymOQBXV1edTnfhwoUHHnjAiiUTtV0MQiL7Y3qAjHjwS70W417A3NzcwsLCyZMn13t4fn6+VSolsgMMQqL2TC6X9+jRIzk52daFELVdPFiGqA3x9PQEUFVV1VodDh48+PDhw2q1urU6JGp/GIREbYhCoQgNDf38888PHDhw4sQJ48Gif9jSpUudnJzGjh178ODBsrKynJyctLS0uLi41iiWqJ1gEBK1LZ988klJScmoUaP69u373Xff3WZvd95554EDB1xcXIYMGeLl5RUUFDR69GiNRtMqpRK1DzzXKFFbJ346Xiq9rbetarVarVZ7eXl16tTJ3d29lUojag8YhERE5NC4aZSIiBwag5CIiBwag5CIiBwag5CIiBwag5CIiBwag5CIiBza/wO4YUTblIJ8egAAAABJRU5ErkJggg==", "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": 6 } ], "cell_type": "code", "source": [ "plot(sol, malaria_model,\n", " lw=2, title = \"Ross-Macdonald Malaria model\",\n", " xlabel = \"time\", ylabel = \"proportion infectious\",\n", " color = [\"magenta\" \"blue\"]\n", ")\n", "\n", "# Plot the equilibrium behavior as well\n", "a, b, c, g, n, r, m = params\n", "R0 = (m*a^2*b*c*exp(-g*n))/(r*g)\n", "X̄ = (R0 - 1)/(R0 + (a*c)/g)\n", "Z̄ = (a*c*X̄)/(g + a*c*X̄)*exp(-g*n)\n", "\n", "N = length(sol)\n", "plot!(sol.t, fill(X̄, N), label = \"human equilibrium\", ls = :dash, lw = 2, color = \"blue\")\n", "plot!(sol.t, fill(Z̄, N), label = \"mosquito equilibrium\", ls = :dash, lw = 2, color = \"magenta\")" ], "metadata": {}, "execution_count": 6 }, { "cell_type": "markdown", "source": [ "## ODE Model using instantaneous machines\n", "One way to decouple systems or isolate coupling points between different parts of a dynamical system\n", "is to use instantaneous machines, which allow processing of information to occur without (optionally) storing\n", "state themselves." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "In this case we seperate the bloodmeal, where pathogen transmission occurs between the two\n", "species, into a seperate machine. This way, the dynamics of the human and mosquito machines\n", "do not need the other's state value, all the information has already been computed in\n", "the bloodmeal machine. For such a simple system, this arrangement may be superfluous, but in\n", "complex systems it can be beneficial to have seperate components which compute terms which\n", "are dependent on state variables \"external\" to a particular machine." ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "rmb = WiringDiagram([], [:mosquitos, :humans, :bloodmeal])\n", "mosquito_box = add_box!(rmb, Box(:mosquitos, [:κ], [:Z]))\n", "human_box = add_box!(rmb, Box(:humans, [:EIR], [:X]))\n", "bloodmeal_box = add_box!(rmb, Box(:bloodmeal, [:X, :Z], [:κ, :EIR]))\n", "output_box = output_id(rmb)\n", "\n", "add_wires!(rmb, Pair[\n", " (bloodmeal_box, 1) => (mosquito_box, 1),\n", " (bloodmeal_box, 2) => (human_box, 1),\n", " (human_box, 1) => (bloodmeal_box, 1),\n", " (mosquito_box, 1) => (bloodmeal_box, 2),\n", " (mosquito_box, 1) => (output_box, 1),\n", " (human_box, 1) => (output_box, 2)]\n", ")" ], "metadata": {}, "execution_count": 7 }, { "cell_type": "markdown", "source": [ "The wiring diagram is below. The bloodmeal machine computes the EIR (entomological inoculation rate)\n", "which is proportional to the force of infection upon susceptible humans, and the net infectiousness\n", "of humans to mosquitoes, commonly denoted $\\kappa$. The EIR is $maZ$ where $Z$ is the mosquito\n", "state variable, and $\\kappa$ is $cX$ where $X$ is the human state variable." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "These two terms are sent from the bloodmeal machine to the mosquito and human machines\n", "via their input ports. Then the dynamical system filling the mosquito machine is\n", "$\\dot{Z} = a\\kappa (e^{-gn} - Z) - gZ$ and $\\dot{X} = bEIR(1-X) - rX$ is the dynamical system\n", "filling the human machine." ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Catlab.Graphics.Graphviz.Graph(\"G\", true, \"dot\", Catlab.Graphics.Graphviz.Statement[Catlab.Graphics.Graphviz.Subgraph(\"\", Catlab.Graphics.Graphviz.Statement[Catlab.Graphics.Graphviz.Node(\"n0out1\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"out1\")), Catlab.Graphics.Graphviz.Node(\"n0out2\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"out2\")), Catlab.Graphics.Graphviz.Node(\"n0out3\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:id => \"out3\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n0out1\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n0out2\", \"\", \"\"), Catlab.Graphics.Graphviz.NodeID(\"n0out3\", \"\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}())], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:rank => \"sink\", :rankdir => \"LR\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:style => \"invis\", :shape => \"none\", :label => \"\", :width => \"0.333\", :height => \"0\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:style => \"invis\")), Catlab.Graphics.Graphviz.Node(\"n1\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:color => \"black\", :comment => \"mosquitos\", :fillcolor => \"white\", :id => \"n1\", :label => Catlab.Graphics.Graphviz.Html(\"\\n\\n\\n\\n
mosquitos
\"), :style => \"solid\")), Catlab.Graphics.Graphviz.Node(\"n2\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:color => \"black\", :comment => \"humans\", :fillcolor => \"white\", :id => \"n2\", :label => Catlab.Graphics.Graphviz.Html(\"\\n\\n\\n\\n
humans
\"), :style => \"solid\")), Catlab.Graphics.Graphviz.Node(\"n3\", OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:color => \"black\", :comment => \"bloodmeal\", :fillcolor => \"white\", :id => \"n3\", :label => Catlab.Graphics.Graphviz.Html(\"\\n\\n\\n\\n
bloodmeal
\"), :style => \"solid\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n3\", \"out1\", \"s\"), Catlab.Graphics.Graphviz.NodeID(\"n1\", \"in1\", \"n\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"κ\", :id => \"e1\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n3\", \"out2\", \"s\"), Catlab.Graphics.Graphviz.NodeID(\"n2\", \"in1\", \"n\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"EIR\", :id => \"e2\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n2\", \"out1\", \"s\"), Catlab.Graphics.Graphviz.NodeID(\"n3\", \"in1\", \"n\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"X\", :id => \"e3\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n1\", \"out1\", \"s\"), Catlab.Graphics.Graphviz.NodeID(\"n3\", \"in2\", \"n\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"Z\", :id => \"e4\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n1\", \"out1\", \"s\"), Catlab.Graphics.Graphviz.NodeID(\"n0out1\", \"n\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"Z\", :id => \"e5\")), Catlab.Graphics.Graphviz.Edge(Catlab.Graphics.Graphviz.NodeID[Catlab.Graphics.Graphviz.NodeID(\"n2\", \"out1\", \"s\"), Catlab.Graphics.Graphviz.NodeID(\"n0out2\", \"n\", \"\")], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:comment => \"X\", :id => \"e6\"))], OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:fontname => \"Serif\", :rankdir => \"TB\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:fontname => \"Serif\", :shape => \"none\", :width => \"0\", :height => \"0\", :margin => \"0\"), OrderedCollections.OrderedDict{Symbol, Union{String, Catlab.Graphics.Graphviz.Html}}(:arrowsize => \"0.5\", :fontname => \"Serif\"))", "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "G\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "n1\n", "\n", "mosquitos\n", "\n", "\n", "\n", "\n", "n1:s->n0out1:n\n", "\n", "\n", "\n", "\n", "\n", "\n", "n3\n", "\n", "bloodmeal\n", "\n", "\n", "\n", "\n", "n1:s->n3:n\n", "\n", "\n", "\n", "\n", "\n", "\n", "n2\n", "\n", "humans\n", "\n", "\n", "\n", "\n", "n2:s->n0out2:n\n", "\n", "\n", "\n", "\n", "\n", "\n", "n2:s->n3:n\n", "\n", "\n", "\n", "\n", "\n", "\n", "n3:s->n1:n\n", "\n", "\n", "\n", "\n", "\n", "\n", "n3:s->n2:n\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 8 } ], "cell_type": "code", "source": [ "to_graphviz(rmb)" ], "metadata": {}, "execution_count": 8 }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "" }, "metadata": {}, "execution_count": 9 } ], "cell_type": "code", "source": [ "bloodmeal = function(u,x,p,t)\n", " X = x[1]\n", " Z = x[2]\n", " [p.c*X, p.m*p.a*Z]\n", "end\n", "\n", "dZdt = function(u,x,p,t)\n", " Z = u[1]\n", " κ = x[1]\n", " [p.a*κ*(exp(-p.g*p.n) - Z) - p.g*Z]\n", "end\n", "\n", "dXdt = function(u,x,p,t)\n", " X = u[1]\n", " EIR = x[1]\n", " [p.b*EIR*(1 - X) - p.r*X]\n", "end\n", "\n", "bloodmeal_model = InstantaneousContinuousMachine{Float64}(2, 0, 2, (u,x,p,t)->u, bloodmeal, [1=>1,2=>2])\n", "mosquito_model = ContinuousMachine{Float64}(1, 1, 1, dZdt, (u,p,t) -> u)\n", "human_model = ContinuousMachine{Float64}(1, 1, 1, dXdt, (u,p,t) -> u)\n", "\n", "instantaneous_mosquito_model = InstantaneousContinuousMachine{Float64}(mosquito_model)\n", "instantaneous_human_model = InstantaneousContinuousMachine{Float64}(human_model)\n", "\n", "malaria_model = oapply(rmb,\n", " Dict(:mosquitos => instantaneous_mosquito_model, :humans => instantaneous_human_model, :bloodmeal => bloodmeal_model)\n", ")" ], "metadata": {}, "execution_count": 9 }, { "cell_type": "markdown", "source": [ "We use the same parameter values as previously given to solve the composed system, and plot\n", "the analytic equilibrium. Results are the same as for the previous system." ], "metadata": {} }, { "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "┌ Warning: Using arrays or dicts to store parameters of different types can hurt performance.\n", "│ Consider using tuples instead.\n", "└ @ SciMLBase ~/.julia/packages/SciMLBase/VS2ST/src/performance_warnings.jl:32\n" ] } ], "cell_type": "code", "source": [ "prob = ODEProblem(malaria_model, u0, tspan, params)\n", "sol = solve(prob, Tsit5());" ], "metadata": {}, "execution_count": 10 }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=4}", "image/png": "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MDAwLy8vPT1dr9fHxsbOmzdPXGfGjBkPPPCAFUslIiJqfeaD8NChQwqFQqFQXL58+fLlywD8/PwAHDhwwLjOsGHDrFMiERGR5ZgPwqNHj1q5DiIiIpu49ZlliIiI2jEGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQGIREROTQny3VdVFS0Z88emUz28MMPy+Xyhivo9foLFy7cvHkzOjraycmClRARETXGUvGTlZXVv3//+++/X6vVLl269MiRIwEBAaYrXLx4sW/fvh4eHhqNpqioSKFQWKgSIiKiJlhq02hCQsKQIUMSExO//fbb3r17f/DBB/VWCAsLu3z58unTpy1UABERUXNYKgh37tw5ceJEcTkmJiYpKaneCu7u7iqVykI/nYiIqJkstWk0Ozs7JCREXA4JCVGr1X+4q+Kc4rGfj/3Q50PxplQqnTp1qpubWytUSRaj1Wr1er1MJrN1IdQCer1eq9VqtVpbF0Itw1Frgkwmk0pvMeWzVBDq9XqJRGKsQ6fT/eGuqiqrBqgHbDu8rcK1AoCrq+sjjzzi7OzcOoWSZegNbF0ItQBHzU5x1JpwyxSE5YJQpVJpNBpxOScnJzg4+A93FRoaKoHk/VnvY2grFUeWJ5PJ9Ho9J+72RXz/ylGzOzqdjqN2Oyy1jzA6Ojo5OVlcTk5Ojo6OFpfz8/P/4OzwVCtVRkREZMJSM8JFixYNGDDAw8NDp9N99dVXx48fF9uDgoLS0tIGDRpUW1v75JNPVlRUAFi4cGGHDh3WrFnTVI/HLVQpERE5NEsFYVRU1PHjx7dt2yaRSE6cOBEeHi62r1+/PjIyEoBEIrnnnnsAPPjggwBu/YH6YxaqlIiIHJpEEARb13ALLzz/wor3VrhWu+ImEGjraqh5xKNGud/Cvuj1+urqag8PD1sXQi1TVlbm6elp6yrsmB2ca1SQCDdCbwDAYVuXQkRE7Y4dBCGArLAsAPje1nUQEVG7Yx9BeL3TdQD4j63rICKidsc+gjDrjiy4AqeAQluXQkRE7Yt9BKHOWYf7AT2QZutSiIiofbGPIASAEQCAZBtXQURE7Yz9BOEoAMBuoK1/3IOIiOyJ/QRhT+AOIJunmCEiotZkP0EI4FEAQKKNqyAiovbEroJwMgBgK1Br40KIiKjdsNS5RluRk95pyidTcAAA4A5kAf0AZZOPGQisaOSufcCqFu5o9AA+BMxeSKocmAPkt6Q3AHHAtEbuWgd83cLeQoANgNnrM/4KxAPVLelNCvwf0L+Re58DfmpWN06Ck0yQQcqxMLDdWPzuVmMhrZW61rqimVdTbmdj0fR1baXAC0BfAEBFg8euBM63sLwuwMxG7joJfGnueVELNHLNQQ9nD8wGXADvBvdVA/8EShuvRG+YWkjx+9DfD9xneHhF3fWPAmcb762hWsADGNnItKsI2Nfo71W/H3E1CdAXCDC5y8dkeT+QC5he4igRuP8WfdtBEEoESfiv4fjVpOnkrR7zW5NP+NSWF/FMI0/4G0Biy2eoysaf8F8D+1rYmwuwqu6/hdEpYFcLewMwrJEXXwHY3NxXNwkkEkgAjoWB7cbid2IAmCoxvLh8BaRCAomsuTEIAIgAugIAdCYvtbXA1UZeypv2C/CpuRHUAqeAkhb2BmAHIDHXXgOUt7y3Ay1/SBOOAZ+1WmdSSG/9qtgiF4BPWrXDc63aW1ZLVr5+6yC0j5Nu98jrMWXKFADIA2YAAD4F/Bt/TI9GXowA1ABHgJqWVOAL9G783ostHBUZcC/QoZF7i4ETLXw1DwciGrlLAH4EilvSmxtwPxp9MVQDF5rVjU6nq62tdXFxccSxqDX8zcWYqQSqAAE4BpQBACpN3gKXm/yIckN4iKEiAApAAlQBlYZ1Sg3vdquBcqDS5M1vlcld4l+1tsHbeTJL0vi/gekKWkACuAKude8VWjinkAKBgItJizOgB5yAGsP/j/if4AToARmgA1zqPkQkAwToJXpZsAzuDZ7sUkAA9ECVuQfqAQngYpg36w3/ZhIgAHACZIATUO8c7NVAPlAL6AydmOVsmGS7AoGAbyOrCYDaXHkNGX99Z+DOuvNL44lWZEAhkAuYnoF8IRB2i77tYEYoSITfIn7DcMPt74B/Az8C//hD3bkAg1qtNgDoanhT3CoUwNDW600C9Gu93gCEACHNWlHQCrX6WjR98QmrjYX4yqIFygzfARQCemC/4UlonBuJT6oyk/XLDXOIGpOpT6XhgXqTyUpp3W0ybY13gxmSl8lrgDsEV0EQBKlUWmdbk6e5DYxOgJfJTRkgNyxLAUWD9TuYexEH4Fr3dVZu7k2Yc93XtSbKaKwHkQRwBgRAa+5PYc8qyyp59YnbYQdBWN/fgK3AOuC5RjaRkb0TI6fIMOkpAaqBUsO+mWJADxSZTLyKAKHu9Ev8buzHyls9JIZdNWLMuAHuAACF4W2saSqYRpHxRdzb8KotvriZpoVX3WetaVcehpmKO/73FqRhTjSpVl/LyzCRA7LDIOwFTAC+Bl5q7a3YdPuKgQqgEhKNRFoq/d/8qQSoACqAIqAKqGg82/7YzptbEpPJyZAiYjaIYWNMKWPAeBu2g7nU/S7GjHHqYwwb0wmQ2ckTEbVtdhiEAP4OJAGbgLjW3rZGAEpNvoqAEqAMKAXKgEKgDCgj3wDaAAANoklEQVQHyoFCoByoMERdZZ0Mc7qdfy0xchSAK+AJeAEugMKQPeK0ycdk4iXOtEynX+J3Yz929SkhIrIy+wzCzsBS4P+AOOBE3WNnyZQ4zRK/ig3fS4BioNiQc8WGJCsDSm57Q6IX4AF0gKAQBHdB6iWFHPAEPABPQAG4AR0AL8AVkDfItib2BhERWYZ9BiGAZcBu4DgQCyQ50vaoYqAAKAIKgULDQrFhwRh7YqQ18eGhJohB5QXIAW/AC/AE5IAXoAA8DV/e/8u8OlFnoNPq9Hq9m1vTR8sQEdme3QahM/A10BdIAaYAXzQ4oNmO1AL5QIHhu+lXYd2FwhYezS9uPPQBvAFvQA4oDN8VhpyTGzJPzDZuSCQiB2O3QQigI7AbGA58DeQA/wZCbV1SPdVAHpAP5AMak+V8k+TLb+HVhhWAj8mXt8mXou5N75YdMUhE5JjsOQgB3AMcAMYC6cDdwCvAk4aDAC2tCMgF8gANkA/kAHmGr3zDXc3cMikFlIAvoGzky8fkO6drREStys6DEEAv4CTwF+Bb4DngDWAaMB4YgFt8mrsxOiDfkGcaQ6SJX7kmN5tzPhQXwA/wBXwBP8DfsGz8MuYfERHZiP0HIQB/YDuQDCwHjgLvA+8DzkB3oDMQCvgBHUxOoVRjODdVBVBscoyJuK2yqHk/VA4EmsRbAOAP+BmSzx/wNznXBhERtVXtIghFfwb+DJwEtgEpwFngDHCm5f3ITOZwfoa08zNknvGm/R6bQ0REJtpREIr6AH2At4By4GfgV+AGkG/46LdIPFeIeNoqH8MxJsadcNxQSUTkSNpdEBp1APq19imniYio3eExiERE5NDsIAjz8vIKCgpsXQW1zNWrV8+fb+lFu8nGcnJyTpw4YesqqGWKi4sPHz5s6yrsmx0E4fnz58+da93LG5PF7dix49NPP7V1FdQy+/fvX7t2ra2roJY5duzYW2+9Zesq7JsdBCHZI0Gw8jUAqRVw1MgxMQiJiMihMQiJiMihSdr+xpCuXbvm5eX17t3b1oVQC1y/fr2qqioyMtLWhVAL3Lx5My8v7+6777Z1IdQCBQUFV69e7dOnj60LaaMeffTR+fPnN72OHQThvn37srKyQkPb2qUlqCklJSVardbX19fWhVALVFRUlJaWBgYG2roQagGtVpuTk8NXyMaEh4dHREQ0vY4dBCEREZHlcB8hERE5NAYhERE5NAYhERE5NAYhERE5NNmKFStsXUNTioqKvv3224sXL95xxx0uLi62LofqyMzMTE1NPXv2rJeXl7e3t7G9pKRkx44d586d69ixo5ubm7H99OnTe/bsqa6u5hFuNicIwsGDB2tqavz8/MQWnU6XkpLy/fffK5VKhUJhXDMzM3PHjh1qtbpTp04ymcxG9RKqq6vFASovLw8NDZVIJAC0Wu3evXuPHDni5+cnl/9+KfBr167t2LHj5s2b4eHhUiknPLcitGHXr18PDg6eNGnS2LFjIyIiNBqNrSui3yUmJvr6+k6YMCE2NlYul2/atElsv3nzZlhY2Pjx4ydMmNCxY0e1Wi22JyQkBAcHz5s3Lzw8/IUXXrBd4SQIgvDJJ584OTktWLBAvKnX6x966KF+/frNmTNHqVTu379fbD906JCPj8/s2bP79+8/ZMgQnU5nu5IdWmZmZpcuXQYMGDBr1qx77733119/FQRBq9UOGjTo/vvvnz17tlKp/P7778WV9+3bp1Qq58yZ069fv4cffri2ttamtduBNh2ECxcufPzxx8Xl8ePHv/rqqzYth+rIzs4uLy8Xlz/77DOVSiUuL1u2bOLEieLy1KlTn3/+eUEQysvLvb29jx49KgjC1atX3dzcbty4YYuqSRAEITs7u3v37lOnTjUG4e7du8PDwysrKwVBWLt27cCBA8X2IUOGvPPOO4IgVFdXR0ZG7tixw1Y1O7iRI0c+88wz9Rq//vrrrl27VldXC4KwevXq4cOHi+39+/f/4IMPBEGoqKjo1KlTSkqKlau1O216yrxz586JEyeKyzExMUlJSbath0ypVCoPDw/jslarFZeTkpIajlp6erqXl9e9994LICwsrGfPnnv37rVF1QQATz311Ouvv266NTspKWn06NHiduyJEyd+//33hYWF5eXlBw8ejImJAeDi4jJ27Fg+B22isLBw7969zz333A8//HDs2DGdTie2JyUljR07VtxnFBMTk5aWVllZqdFojhw5Ij4H3d3dR40axVG7pTZ9hfrs7OyQkBBxOSQkRK1W27YeMkuv17/++utz5swRb6rV6oajplarTfcLcjRtaMuWLU5OTo888khqaqqxUa1W9+/fX1wOCAhwcXFRq9Wurq4AgoODxfaQkJALFy5Yv2DKyMhwc3ObPn16QEDA1atXJRJJWlqaXC5Xq9U9e/YU1xGfdNnZ2WVlZS4uLv7+/sb2kydP2qx0O9F2Z4SCIOj1enGHMACZTGZ8H0RthyAITz/9tE6nW758udhidtRMGwE4OTlxNG0iLy9vxYoV7777br12vV5vekiFVCrV6XTiqPE5aHNVVVWVlZWPP/74V199dezYMXd39zVr1qDuqEmlUolEIo6a6VBy1Jqj7c4IJRJJUFCQRqMRb+bk5BjfmVLbsXjx4hMnTqSmprq7u4stKpWq4aipVKrc3Fzjo27evDl8+HDrV0v/+te/nJ2dX331VQDp6ekSiWTlypUvvfSS6QAVFxdXVVUFBwe7uLjU1tbm5eWJZx/NyclRqVS2rN5RiU+iwYMHA5BKpYMGDRKvVW46ahqNpra2Njg4uLS0tKqqqqSkRDyIlKPWHG13RghgyJAhKSkp4nJKSkp0dLRNy6H6li1btn///j179pgetx0dHZ2cnCwuG0etf//+WVlZGRkZAIqKio4fP87RtIlx48atWLFi+PDhw4cPDw0N7dix43333QcgOjo6NTVVEAQAKSkpUVFRAQEB3t7evXr1Ep+DgiCkpqYOGTLExr+AQwoLC4uIiLhy5Yp48/Lly+KOBtNRS05Ovueee7y8vFQqVdeuXcVRq62t3bdvH0ft1mx6qM4tnDlzRi6Xv/zyy0uWLFEqlRkZGbauiH63ZcsWADExMX8xqKioEAThl19+8fb2Xrp06bJlyxQKxc8//yyuv3Dhwh49eiQkJAwcODA2NtamtZMgCML8+fONR41WVVV169btscceW716dWBg4JYtW8T2xMREf3//VatWTZs2LTIyUhxisr7NmzffcccdCQkJCxcuDAgIuHbtmiAIZWVlERERM2bMWLVqlZ+f3zfffCOu/NlnnwUFBa1evXry5MlRUVHiYaXUhLZ+9YmLFy9u27ZNJpNNmzYtPDzc1uXQ786dO3f48GHTlri4OPEAtitXrvz73/8WBGHKlCl33XWXeK8gCImJiSdPnuzatev06dOdnNruZnkHIW4aHThwoHizqKho48aN+fn5I0aMGDRokOlqe/fuVSqVcXFxSqXSRsUSDh06lJyc7OvrO3XqVOOlsvLz8zdt2lRYWDhq1KgBAwYYVz548GBqaqq/v/+sWbNMT49AZrX1ICQiIrKoNr2PkIiIyNIYhERE5NAYhERE5NAYhERE5NAYhERE5NAYhERE5NAYhERt3YEDB/bs2WPrKojaLX6OkKgNKS8v/+KLL4YMGWI8EQGA8ePHazSaeqcvIKLWwrN7ELUhRUVF8+bN27x5s2kQTp8+vaKiwoZVEbVvDEKitm7SpElm28vKyrRarY+Pj7GloKDAy8vL2dm54cqVlZXFxcVKpVI8DR4RGXEfIVFbcf78+aioKADz589XKpVKpfKLL74AMGvWrHHjxonr/Pjjj0qlcvv27WPGjJHL5UqlctiwYfn5+adOnerZs6evr6+np+ezzz5bW1tr7DYjI2Ps2LFyuVylUimVyvj4+JqaGpv8gkRtE4OQqK0ICwtbt24dgKeeeurLL7/88ssvxQvoFBQU5OXlievodLrCwsIFCxb06dPnyJEjGzdu/OGHH+bMmRMbG7tgwYLjx48vWbIkISEhMTFRXD83N/fBBx/MzMzcvn37+fPn33333Y0bNz799NO2+h2J2iBuGiVqKzw9PR988EEAUVFRTV+4eMyYMeLFde+9997//Oc/mzZt+vTTT2fMmAGgb9++iYmJO3bseOyxxwCsXr26tLT0xIkTQUFBALp3715RUbF48eI33njD19fXGr8VUZvHICSyP3/+85+Ny5GRkQBGjBhh2pKZmSkuJycnR0REnDt3TrymOQBXV1edTnfhwoUHHnjAiiUTtV0MQiL7Y3qAjHjwS70W417A3NzcwsLCyZMn13t4fn6+VSolsgMMQqL2TC6X9+jRIzk52daFELVdPFiGqA3x9PQEUFVV1VodDh48+PDhw2q1urU6JGp/GIREbYhCoQgNDf38888PHDhw4sQJ48Gif9jSpUudnJzGjh178ODBsrKynJyctLS0uLi41iiWqJ1gEBK1LZ988klJScmoUaP69u373Xff3WZvd95554EDB1xcXIYMGeLl5RUUFDR69GiNRtMqpRK1DzzXKFFbJ346Xiq9rbetarVarVZ7eXl16tTJ3d29lUojag8YhERE5NC4aZSIiBwag5CIiBwag5CIiBwag5CIiBwag5CIiBwag5CIiBza/wO4YUTblIJ8egAAAABJRU5ErkJggg==", "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": 11 } ], "cell_type": "code", "source": [ "plot(sol, label = [\"mosquitos\" \"humans\"],\n", " lw=2, title = \"Ross-Macdonald Malaria model\",\n", " xlabel = \"time\", ylabel = \"proportion infectious\",\n", " color = [\"magenta\" \"blue\"]\n", ")\n", "N = length(sol)\n", "plot!(sol.t, fill(X̄, N), label = \"human equilibrium\", ls = :dash, lw = 2, color = \"blue\")\n", "plot!(sol.t, fill(Z̄, N), label = \"mosquito equilibrium\", ls = :dash, lw = 2, color = \"magenta\")" ], "metadata": {}, "execution_count": 11 }, { "cell_type": "markdown", "source": [ "## Delay Model\n", "The previous models did not capture the incubation period for the disease in the\n", "mosquito population. To do so we can replace the models with delay differential equations\n", "and apply them to the same diagram of systems representing the bloodmeal." ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "#23 (generic function with 1 method)" }, "metadata": {}, "execution_count": 12 } ], "cell_type": "code", "source": [ "dzdt_delay = function(u,x,h,p,t)\n", " Y, Z = u\n", " Y_delay, Z_delay = h(p, t - p.n)\n", " X, X_delay = x[1]\n", "\n", " [p.a*p.c*X*(1 - Y - Z) -\n", " p.a*p.c*X_delay*(1 - Y_delay - Z_delay)*exp(-p.g*p.n) -\n", " p.g*Y,\n", " p.a*p.c*X_delay*(1 - Y_delay - Z_delay)*exp(-p.g*p.n) -\n", " p.g*Z]\n", "end\n", "\n", "dxdt_delay = function(u,x,h,p,t)\n", " X, = u\n", " Z, _ = x[1]\n", " [p.m*p.a*p.b*Z*(1 - X) - p.r*X]\n", "end" ], "metadata": {}, "execution_count": 12 }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "" }, "metadata": {}, "execution_count": 13 } ], "cell_type": "code", "source": [ "mosquito_delay_model = DelayMachine{Float64, 2}(\n", " 1, 2, 1, dzdt_delay, (u,h,p,t) -> [[u[2], h(p,t - p.n)[2]]])\n", "\n", "human_delay_model = DelayMachine{Float64, 2}(\n", " 1, 1, 1, dxdt_delay, (u,h,p,t) -> [[u[1], h(p, t - p.n)[1]]])\n", "\n", "malaria_delay_model = oapply(rm,\n", " Dict(:humans => human_delay_model, :mosquitos => mosquito_delay_model)\n", ")" ], "metadata": {}, "execution_count": 13 }, { "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "┌ Warning: Using arrays or dicts to store parameters of different types can hurt performance.\n", "│ Consider using tuples instead.\n", "└ @ SciMLBase ~/.julia/packages/SciMLBase/VS2ST/src/performance_warnings.jl:32\n" ] }, { "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", "\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", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 14 } ], "cell_type": "code", "source": [ "params = LVector(a = 0.3, b = 0.55, c = 0.15,\n", " g = 0.1, n = 10, r = 1.0/200, m = 0.5)\n", "\n", "u0_delay = [0.09, .01, 0.3]\n", "tspan = (0.0, 365.0*3)\n", "hist(p,t) = u0_delay;\n", "\n", "prob = DDEProblem(malaria_delay_model, u0_delay, [], hist, tspan, params)\n", "alg = MethodOfSteps(Tsit5())\n", "sol = solve(prob, alg)\n", "\n", "plot(sol, label=[\"non-infectious mosquito population\" \"infectious mosquito population\" \"host population\"],\n", " lw=2, title = \"Ross-Macdonald malaria model\",\n", " xlabel = \"time\", ylabel = \"proportion infectious\",\n", " color = [\"magenta\" \"red\" \"blue\"]\n", ")\n", "N = length(sol)\n", "plot!(sol.t, fill(X̄, N), label = \"human equilibrium\", ls = :dash, lw = 2, color = \"blue\")\n", "plot!(sol.t, fill(Z̄, N), label = \"infectious mosquito equilibrium\", ls = :dash, lw = 2, color = \"red\")" ], "metadata": {}, "execution_count": 14 }, { "cell_type": "markdown", "source": [ "While the equilibrium points of the two models are identical, they exhibit different dynamical behavior\n", "before settling down to equilibrium. Because models are often used to examine how the system may respond\n", "to intervention, incorporating additional biological realism can produce more plausible results regarding\n", "the expected time for interventions to affect the system. In any case, such simple models are best used as\n", "tools to explain basic concepts in malaria epidemiology rather than descriptions of real systems, which are\n", "likely far from equilibrium and affected by weather, climate, policy, and other external forces." ], "metadata": {} } ], "nbformat_minor": 3, "metadata": { "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.9.3" }, "kernelspec": { "name": "julia-1.9", "display_name": "Julia 1.9.3", "language": "julia" } }, "nbformat": 4 }