dualNone: Dual-host pathogen in homogeneous hosts populations

View source: R/dual-none.R

dualNoneR Documentation

Dual-host pathogen in homogeneous hosts populations

Description

This function, that can be wrapped within nosoiSim, runs a dual-host transmission chain simulation, without any structure features in both hosts populations. The simulation stops either at the end of given time (specified by length.sim) or when the number of hosts infected threshold (max.infected) is crossed.

Usage

dualNone(
  length.sim,
  max.infected.A,
  max.infected.B,
  init.individuals.A,
  init.individuals.B,
  pExit.A,
  param.pExit.A,
  timeDep.pExit.A = FALSE,
  nContact.A,
  param.nContact.A,
  timeDep.nContact.A = FALSE,
  pTrans.A,
  param.pTrans.A,
  timeDep.pTrans.A = FALSE,
  prefix.host.A = "H",
  pExit.B,
  param.pExit.B,
  timeDep.pExit.B = FALSE,
  nContact.B,
  param.nContact.B,
  timeDep.nContact.B = FALSE,
  pTrans.B,
  param.pTrans.B,
  timeDep.pTrans.B = FALSE,
  prefix.host.B = "V",
  print.progress = TRUE,
  print.step = 10
)

Arguments

length.sim

specifies the length (in unit of time) over which the simulation should be run.

max.infected.A

specifies the maximum number of individual hosts A that can be infected in the simulation.

max.infected.B

specifies the maximum number of individual hosts B that can be infected in the simulation.

init.individuals.A

number of initially infected individuals (hosts A).

init.individuals.B

number of initially infected individuals (hosts B).

pExit.A

function that gives the probability to exit the simulation for an infected host A (either moving out, dying, etc.).

param.pExit.A

parameter names (list of functions) for the pExit for host-type A.

timeDep.pExit.A

is pExit of host-type A dependent on the absolute time of the simulation (TRUE/FALSE)?

nContact.A

function that gives the number of potential transmission events per unit of time for host-type A.

param.nContact.A

parameter names (list of functions) for param.nContact for host-type A.

timeDep.nContact.A

is nContact of host-type A dependent on the absolute time of the simulation (TRUE/FALSE)?

pTrans.A

function that gives the probability of transmit a pathogen as a function of time since infection for host A.

param.pTrans.A

parameter names (list of functions) for the pExit for host A.

timeDep.pTrans.A

is pTrans of host-type A dependent on the absolute time of the simulation (TRUE/FALSE)?

prefix.host.A

character(s) to be used as a prefix for the host A identification number.

pExit.B

function that gives the probability to exit the simulation for an infected host B (either moving out, dying, etc.).

param.pExit.B

parameter names (list of functions) for the pExit for host-type B.

timeDep.pExit.B

is pExit of host-type B dependent on the absolute time of the simulation (TRUE/FALSE)?

nContact.B

function that gives the number of potential transmission events per unit of time for host B.

param.nContact.B

parameter names (list of functions) for param.nContact for host-type B.

timeDep.nContact.B

is nContact of host-type B dependent on the absolute time of the simulation (TRUE/FALSE)?

pTrans.B

function that gives the probability of transmit a pathogen as a function of time since infection for host B.

param.pTrans.B

parameter names (list of functions) for the pExit for host-type B.

timeDep.pTrans.B

is pTrans of host-type B dependent on the absolute time of the simulation (TRUE/FALSE)?

prefix.host.B

character(s) to be used as a prefix for the host B identification number.

print.progress

if TRUE, displays a progress bar (current time/length.sim).

print.step

print.progress is TRUE, step with which the progress message will be printed.

Details

The pExit and pTrans functions should return a single probability (a number between 0 and 1), and nContact a positive natural number (positive integer) or 0.

The param arguments should be a list of functions or NA. Each item name in the parameter list should have the same name as the argument in the corresponding function.

The use of timeDep (switch to TRUE) makes the corresponding function use the argument prestime (for "present time").

Value

An object of class nosoiSim, containing all results of the simulation.

Suffixes

The suffix .A or .B specifies if the considered function or parameter concerns host type A or B.

Order of Arguments

The user specified function's arguments should follow this order: t (mandatory), prestime (optional, only if timeDep is TRUE), parameters specified in the list.

See Also

For simulations with a discrete structured host population, see dualDiscrete. For simulations with a structured population in continuous space, dualContinuous

Examples


 #Host A
t_infectA_fct <- function(x){rnorm(x,mean = 12,sd=3)}
pTrans_hostA <- function(t,t_infectA){
  if(t/t_infectA <= 1){p=sin(pi*t/t_infectA)}
  if(t/t_infectA > 1){p=0}
  return(p)
}

p_Exit_fctA  <- function(t,t_infectA){
  if(t/t_infectA <= 1){p=0}
  if(t/t_infectA > 1){p=1}
  return(p)
}

time_contact_A = function(t){sample(c(0,1,2),1,prob=c(0.2,0.4,0.4))}

#Host B
t_incub_fct_B <- function(x){rnorm(x,mean = 5,sd=1)}
p_max_fct_B <- function(x){rbeta(x,shape1 = 5,shape2=2)}

p_Exit_fct_B  <- function(t,prestime){(sin(prestime/12)+1)/5}

pTrans_hostB <- function(t,p_max,t_incub){
  if(t <= t_incub){p=0}
  if(t >= t_incub){p=p_max}
  return(p)
}

time_contact_B = function(t){round(rnorm(1, 3, 1), 0)}

set.seed(90)
test.nosoi <- nosoiSim(type="dual", popStructure="none",
                       length.sim=40,
                       max.infected.A=100,
                       max.infected.B=200,
                       init.individuals.A=1,
                       init.individuals.B=0,
                       pExit.A = p_Exit_fctA,
                       param.pExit.A = list(t_infectA = t_infectA_fct),
                       timeDep.pExit.A=FALSE,
                       nContact.A = time_contact_A,
                       param.nContact.A = NA,
                       timeDep.nContact.A=FALSE,
                       pTrans.A = pTrans_hostA,
                       param.pTrans.A = list(t_infectA=t_infectA_fct),
                                             timeDep.pTrans.A=FALSE,
                       prefix.host.A="H",
                       pExit.B = p_Exit_fct_B,
                       param.pExit.B = NA,
                       timeDep.pExit.B=TRUE,
                       nContact.B = time_contact_B,
                       param.nContact.B = NA,
                       timeDep.nContact.B=FALSE,
                       pTrans.B = pTrans_hostB,
                       param.pTrans.B = list(p_max=p_max_fct_B,
                                            t_incub=t_incub_fct_B),
                       timeDep.pTrans.B=FALSE,
                       prefix.host.B="V")

test.nosoi



slequime/nosoi documentation built on Feb. 15, 2024, 3:31 p.m.