From 318eff22dbd06a53b53d476acd25127ea5503014 Mon Sep 17 00:00:00 2001 From: Jnsumba <79705069+Jnsumba@users.noreply.github.com> Date: Mon, 14 Oct 2024 11:10:42 +0300 Subject: [PATCH] xde_scaling_eir xde_scalling_eir function: A change of terms<- model$outputs$orbits$terms[[1]] changed to model$outputs$orbits$terms --- R/scaling.R | 2 +- vignettes/Scaling.R | 56 +----------------------- vignettes/Scaling.html | 96 +++++++++++------------------------------- 3 files changed, 27 insertions(+), 127 deletions(-) diff --git a/R/scaling.R b/R/scaling.R index c79bb60..f0fd83f 100644 --- a/R/scaling.R +++ b/R/scaling.R @@ -18,7 +18,7 @@ xde_scaling_eir = function(model, N=25){ model$EIRpar$eir <- aEIR[i]/365 model <- ramp.xds::xds_solve_cohort(model, A=10, da=1) XH <- model$outputs$orbits$XH[[1]] - terms <- model$outputs$orbits$terms[[1]] + terms <- model$outputs$orbits$terms pr_t = tail(XH$true_pr, 365); pr[i] = mean(pr_t) ni_t = tail(XH$ni, 365); ni[i]= mean(ni_t) eir_t = tail(terms$EIR, 365); eir[i] = mean(eir_t) diff --git a/vignettes/Scaling.R b/vignettes/Scaling.R index 3ce238a..96c1009 100644 --- a/vignettes/Scaling.R +++ b/vignettes/Scaling.R @@ -1,11 +1,10 @@ ## ----------------------------------------------------------------------------- library(ramp.xds) -library(deSolve) -library(rootSolve) library(ramp.work) +library(deSolve) ## ----echo=F------------------------------------------------------------------- -devtools::load_all() +#devtools::load_all() ## ----Fsin--------------------------------------------------------------------- tt <- seq(0, 730, by=5) @@ -51,54 +50,3 @@ plot_eirpr(sis) with(sis$outputs$eirpr, points(aeir, pr, pch = 15)) with(preir_i, points(365*eir, pr, pch = 19, col = "red")) -## ----------------------------------------------------------------------------- -sis0 <- xds_setup_cohort(Xname = "SIS", F_season = Fsin) -xde_scaling_eir(sis0, 25) -> sis0 - -## ----------------------------------------------------------------------------- -clrs = turbo(25) -with(sis$outputs$eirpr, plot(aeir, pr, type = "l", log = "x", xaxt= "n", xlab = "aEIR", ylab = "PR")) -axis(1, 10^(-1:3), c(0.1, 1, 10, 100, 1000)) -lines(sis$outputs$eirpr$aeir, sis0$outputs$eirpr$pr, col = "tomato", lwd=2) - -with(sis0$outputs$eirpr, points(aeir, pr, col = clrs)) -with(sis0$outputs$eirpr, lines(scaling[[5]]$aeir, scaling[[5]]$pr, col = clrs[5])) -with(sis0$outputs$eirpr, lines(scaling[[10]]$aeir, scaling[[10]]$pr, col = clrs[10])) -with(sis0$outputs$eirpr, lines(scaling[[15]]$aeir, scaling[[15]]$pr, col = clrs[15])) -with(sis0$outputs$eirpr, lines(scaling[[20]]$aeir, scaling[[20]]$pr, col = clrs[20])) - -## ----eval=F------------------------------------------------------------------- -# sip = xds_setup_cohort(Xname = "SIP", F_season=Fsin) -# sip$Xpar[[1]]$eta = 1/40 -# xde_scaling_eir(sip, 25) -> sip - -## ----eval=F------------------------------------------------------------------- -# sip1 = setup_exposure_nb(sip, 1/50) -# xde_scaling_eir(sip1, 25) -> sip1 - -## ----eval=F------------------------------------------------------------------- -# with(sis$outputs$eirpr, plot(aeir, pr, type = "l", log = "x", xaxt= "n", xlab = "aEIR", ylab = "PR")) -# axis(1, 10^(-1:3), c(0.1, 1, 10, 100, 1000)) -# with(sip$outputs$eirpr, lines(aeir, pr, col = "darkorange")) -# with(sip1$outputs$eirpr, lines(aeir, pr, col = "brown")) - -## ----------------------------------------------------------------------------- -sis4 <- setup_exposure_nb(sis, 1/50) -xde_scaling_eir(sis4, 25) -> sis4 - -## ----------------------------------------------------------------------------- -with(sis$outputs$eirpr, plot(aeir, pr, type = "l", log = "x", xaxt= "n", xlab = "aEIR", ylab = "PR")) -axis(1, 10^(-1:3), c(0.1, 1, 10, 100, 1000)) -#with(sis2$outputs$eir, lines(aeir, pr, col = "blue")) -#with(sis3$outputs$eir, lines(aeir, pr, col = "purple")) -with(sis4$outputs$eir, lines(aeir, pr, col = "darkblue")) - -## ----------------------------------------------------------------------------- -sis5 <- setup_travel_static(sis, delta = 1/5/365) -xde_scaling_eir(sis5, 25) -> sis5 - -## ----------------------------------------------------------------------------- -with(sis$outputs$eirpr, plot(aeir, pr, type = "l", log = "x", xaxt= "n", xlab = "aEIR", ylab = "PR")) -axis(1, 10^(-1:3), c(0.1, 1, 10, 100, 1000)) -with(sis5$outputs$eir, lines(aeir, pr, col = "darkgreen")) - diff --git a/vignettes/Scaling.html b/vignettes/Scaling.html index 4a8fb37..babed16 100644 --- a/vignettes/Scaling.html +++ b/vignettes/Scaling.html @@ -10,7 +10,7 @@ - + Scaling for Malaria Metrics @@ -374,39 +374,43 @@

Scaling for Malaria Metrics

-

October 09, 2024

+

October 14, 2024

Load the required packages:

library(ramp.xds)
-library(deSolve)
-library(rootSolve)
-library(ramp.work)
-
## ℹ Loading ramp.work
-
-

Scaling

-

This is a dog.

+library(ramp.work) +library(deSolve) +

An important question in malaria is the relationship between various +metrics, especially the relationship between the annual entomological +inoculation rate (aEIR) and the parasite rate (PR). To facilitate +analysis of malaria data, we have developed some functions to compute +scaling relationships.

xde_scaling

The function xde_scaling() defines the relationship -between the EIR and the PR, and it outputs stable orbits for each value -of aEIR in a mesh from \(10^{-1}\) up -to \(10^{3}\) The code is in +between the EIR and the PR. It analyzes stable orbits and outputs the +average annual EIR and average annual PR for an even mesh of +log(aEIR) values running from \(10^{-1}\) up to \(10^{3}\) The code is in mob_library/Work

-

The cohort trace functions in ramp.xds take the form of -F(a, bday=0, scale=1).

+

To illustrate, we pick a function describing a seasonal pattern using +ramp.xds::make_F_sin

tt <- seq(0, 730, by=5) 
 p1 <- makepar_F_sin(floor=0.1)
 Fsin <- make_function(p1)
 plot(tt, Fsin(tt), type="l")
-

+

+

Next, we set up a cohort model:

xds_setup_cohort(Xname = "SIS", F_season=Fsin) -> sis
xds_solve_cohort(sis) -> sis
+

The function xde_scaling_eir runs the model over a mesh +of N=25 values:

xde_scaling_eir(sis, 25) -> sis
+

The results are attached as sis$outputs$eirpr

plot_eirpr(sis)
-

+

require(viridis)
## Loading required package: viridis
## Loading required package: viridisLite
@@ -420,7 +424,7 @@

xde_scaling

lines(scaling[[15]]$aeir, scaling[[15]]$pr, col = clrs[15]) lines(scaling[[20]]$aeir, scaling[[20]]$pr, col = clrs[20]) }) -

+

xde_pr2eir()

@@ -436,65 +440,13 @@

xde_pr2eir()

other models can be bounded, so we don’t want to return nonsense values.

preir_i$errors
-
##         pr1         pr2         pr3         pr4 
-## 0.001000000 0.004284405 0.012302189 0.999000000
+
##   pr1   pr2 
+## 0.001 0.999

We can plot the others:

plot_eirpr(sis)
 with(sis$outputs$eirpr, points(aeir, pr, pch = 15))
 with(preir_i, points(365*eir, pr, pch = 19, col = "red"))
-

-
-
-

Scaling

-
-

Seasonality

-
sis0 <- xds_setup_cohort(Xname = "SIS", F_season = Fsin)
-xde_scaling_eir(sis0, 25) -> sis0
-
clrs = turbo(25)
-with(sis$outputs$eirpr, plot(aeir, pr, type = "l", log = "x", xaxt= "n", xlab = "aEIR", ylab = "PR"))
-axis(1, 10^(-1:3), c(0.1, 1, 10, 100, 1000))
-lines(sis$outputs$eirpr$aeir, sis0$outputs$eirpr$pr, col = "tomato", lwd=2) 
-
-with(sis0$outputs$eirpr, points(aeir, pr, col = clrs))
-with(sis0$outputs$eirpr, lines(scaling[[5]]$aeir, scaling[[5]]$pr, col = clrs[5]))
-with(sis0$outputs$eirpr, lines(scaling[[10]]$aeir, scaling[[10]]$pr, col = clrs[10]))
-with(sis0$outputs$eirpr, lines(scaling[[15]]$aeir, scaling[[15]]$pr, col = clrs[15]))
-with(sis0$outputs$eirpr, lines(scaling[[20]]$aeir, scaling[[20]]$pr, col = clrs[20]))
-

-
-
-

Drug taking

-
sip = xds_setup_cohort(Xname = "SIP", F_season=Fsin)
-sip$Xpar[[1]]$eta = 1/40
-xde_scaling_eir(sip, 25) -> sip
-
sip1 = setup_exposure_nb(sip, 1/50)
-xde_scaling_eir(sip1, 25) -> sip1
-
with(sis$outputs$eirpr, plot(aeir, pr, type = "l", log = "x", xaxt= "n", xlab = "aEIR", ylab = "PR"))
-axis(1, 10^(-1:3), c(0.1, 1, 10, 100, 1000))
-with(sip$outputs$eirpr, lines(aeir, pr, col = "darkorange"))
-with(sip1$outputs$eirpr, lines(aeir, pr, col = "brown"))
-
-
-

Environmental Heterogeneity

-
sis4 <- setup_exposure_nb(sis, 1/50)
-xde_scaling_eir(sis4, 25) -> sis4
-
with(sis$outputs$eirpr, plot(aeir, pr, type = "l", log = "x", xaxt= "n", xlab = "aEIR", ylab = "PR"))
-axis(1, 10^(-1:3), c(0.1, 1, 10, 100, 1000))
-#with(sis2$outputs$eir, lines(aeir, pr, col = "blue"))
-#with(sis3$outputs$eir, lines(aeir, pr, col = "purple"))
-with(sis4$outputs$eir, lines(aeir, pr, col = "darkblue"))
-

-
-
-

Travel

-
sis5 <- setup_travel_static(sis, delta = 1/5/365)
-xde_scaling_eir(sis5, 25) -> sis5
-
with(sis$outputs$eirpr, plot(aeir, pr, type = "l", log = "x", xaxt= "n", xlab = "aEIR", ylab = "PR"))
-axis(1, 10^(-1:3), c(0.1, 1, 10, 100, 1000))
-with(sis5$outputs$eir, lines(aeir, pr, col = "darkgreen")) 
-

-
-
+