Learn R Programming

Micro-MoB (Microsimulation for mosquito-borne pathogens)

What is Micro-MoB?

Micro-MoB was made to simplify the task of model building for mosquito-borne pathogen transmission (MBPT) systems. It stands for "microsimulation for mosquito-borne pathogens". It is a modular framework to build discrete time MBPT models. It uses R's S3 object system to define a set of components and interfaces which can be filled by any specific model that implements the interface. These parts, along with certain invariants can be put together to define a full simulation model. Definitions for all these terms can be found in the documentation.

We hope it proves useful. Please visit the website to learn more.

Installation

remotes::install_github('dd-harp/MicroMoB')

Alternatively you can install Micro-MoB directly from CRAN, but be aware that the CRAN version may not be the most recent version of the package:

install.packages('MicroMoB')

Documentation

To start learning more about the software design, the problems it was designed to solve, and how to build new models in Micro-MoB, please read vignette("MicroMoB").

Next, vignette("bloodmeal") describes how the bloodmeal algorithm computes the distribution of bites using each component's interface, allowing different models to be linked in a consistent framework.

We also have articles describing some well-known models of specific components of MBPT models that are implemented in Micro-MoB:

  • vignette("RM_mosquito"): read about an implementation of a flexible [Ross-Macdonald

model](https://journals.plos.org/plospathogens/article?id=10.1371/journal.ppat.1002588) of adult mosquito dynamics.

  • vignette("MOI_human"): read about an implementation of the $(M/M/\infty)$ queuing

model for superinfection in humans.

  • vignette("BH_aqua"): read about a simple non-linear model of aquatic (immature)

stage mosquito dynamics based on the well known Beverton-Holt model from ecology.

  • vignette("BQ_mosquito"): read about a behavioral state model of adult mosquito

dynamics.

  • vignette("RM_transmission"): read about how we put together models fulfilling

each component to run a simple Ross-Macdonald style model of pathogen transmission between human hosts and mosquito vectors.

The article vignette("Advanced") contains information on how to extend Micro-MoB by linking to it from a new package, and how to write new models that interact with the rest of the system. It also contains information on how to use the Plumber web API which is supported for some models in Micro-MoB.

Contributing

Thank you for your interest in Micro-MoB! If you have a bug to report, please open an issue on GitHub. If you would like to open a pull request or have further questions, please see our guide to contributing to the project at vignette("Contributing").

Code of Conduct

Please note that the Micro-MoB project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Copy Link

Version

Install

install.packages('MicroMoB')

Monthly Downloads

309

Version

0.1.2

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Sean L. Wu

Last Published

January 17th, 2023

Functions in MicroMoB (0.1.2)

MicroMoB

MicroMoB: Microsimulation for mosquito-borne pathogens
compute_H.SIP

Compute human population strata sizes for SIP model (\(H\))
compute_H

Compute human population strata sizes (\(H\))
approx_equal

Check if two numeric values are approximately equal
compute_H.MOI

Compute human population strata sizes for MOI model (\(H\))
compute_H.SIS

Compute human population strata sizes for SIS model (\(H\))
compute_H.SIR

Compute human population strata sizes for SIR model (\(H\))
compute_Psi.SIP

Compute time at risk matrix for SIP model (\(\Psi\))
compute_O

Compute available alternative blood hosts (\(O\))
compute_O.trace

Compute available alternative blood hosts for trace model (\(O\))
compute_Psi.SIR

Compute time at risk matrix for SIR model (\(\Psi\))
compute_Psi.MOI

Compute time at risk matrix for MOI model (\(\Psi\))
compute_q.BQ

Compute human blood feeding fraction for BQ model (\(q\))
compute_f.RM

Compute mosquito feeding rate for RM model (\(f\))
compute_q.RM

Compute human blood feeding fraction for RM model (\(q\))
compute_f.BQ

Compute mosquito feeding rate for BQ model (\(f\))
compute_Z.RM

Compute density of infective mosquitoes for RM model (\(Z\))
compute_Z.BQ

Compute density of infective mosquitoes for BQ model (\(Z\))
compute_Wd.trace

Compute available visitors for trace model (\(W_{\delta}\))
compute_emergents.trace_deterministic

Compute number of newly emerging adults from forcing term (deterministic)
compute_Z

Compute density of infective mosquitoes (\(Z\))
compute_emergents.trace_stochastic

Compute number of newly emerging adults from forcing term (stochastic)
compute_emergents.BH

Compute number of newly emerging adults from Beverton-Holt dynamics
compute_Wd

Compute available visitors (\(W_{\delta}\))
compute_bloodmeal_simple

Compute bloodmeals taken by mosquitoes on hosts in simple models
compute_Psi.SIS

Compute time at risk matrix for SIS model (\(\Psi\))
compute_oviposit.trace

Compute number of eggs laid from oviposition for each patch for null model
get_config_visitor_trace

Get parameters for trace driven visitors
compute_oviposit

Compute number of eggs laid from oviposition for each patch
compute_x.SIR

Compute net infectiousness for SIR model (\(x\))
compute_wf.SIP

Compute human biting weights for SIP model (\(w_{f}\))
compute_wf.SIR

Compute human biting weights for SIR model (\(w_{f}\))
compute_x.SIS

Compute net infectiousness for SIS model (\(x\))
compute_Psi

Compute time at risk matrix (\(\Psi\))
compute_oviposit.BQ_deterministic

Compute number of eggs laid from oviposition for each patch for deterministic RM model
compute_f

Compute mosquito feeding rate (\(f\))
compute_oviposit.BQ

Compute number of eggs laid from oviposition for each aquatic habitat for BQ model
compute_wf

Compute human biting weights (\(w_{f}\))
compute_wf.MOI

Compute human biting weights for MOI model (\(w_{f}\))
compute_q.trace

Compute null human blood feeding fraction (\(q\))
compute_x

Compute net infectiousness of humans (\(x\))
compute_f.trace

Compute null mosquito feeding rate (\(f\))
compute_q

Compute human blood feeding fraction (\(q\))
compute_x.SIP

Compute net infectiousness for SIP model (\(x\))
compute_emergents

Compute number of newly emerging adults (\(\lambda\))
compute_emergents.trace

Compute number of newly emerging adults from forcing term
draw_multinom

Draw a multinomially distributed random vector
compute_oviposit.RM

Compute number of eggs laid from oviposition for each patch for RM model
compute_Z.trace

Compute null density of infective mosquitoes (\(Z\))
compute_wf.SIS

Compute human biting weights for SIS model (\(w_{f}\))
compute_xd.trace

Compute net infectiousness of visitors for trace model (\(x_{\delta}\))
compute_oviposit.BQ_stochastic

Compute number of eggs laid from oviposition for each patch for stochastic RM model
compute_xd

Compute net infectiousness of visitors (\(x_{\delta}\))
compute_x.MOI

Compute net infectiousness for MOI model (\(x\))
compute_bloodmeal

Compute bloodmeals taken by mosquitoes on hosts
get_config_humans_SIR

Get parameters for SIR human model
get_eip_mosquito_RM

Get extrinsic incubation period for Ross-Macdonald mosquito model
compute_oviposit.RM_stochastic

Compute number of eggs laid from oviposition for each patch for stochastic RM model
get_config_alternative_trace

Get parameters for trace driven alternative blood hosts
get_p_mosquito_RM

Get daily survival probability for Ross-Macdonald mosquito model
compute_oviposit.RM_deterministic

Compute number of eggs laid from oviposition for each patch for deterministic RM model
get_config_aqua_BH

Get parameters for aquatic (immature) model with Beverton-Holt dynamics
get_nu_mosquito_RM

Get number of eggs laid per oviposition for Ross-Macdonald mosquito model
distribute

Distribute items into bins as evenly as possible
observe_pfpr.SIS

Observe PfPR in human strata for SIS model
observe_pfpr.SIP

Observe PfPR in human strata for SIP model
set_lambda_aqua_trace

Set daily emergence for trace (forced) aquatic mosquito model
get_config_mosquito_RM

Get parameters for generalized Ross-Macdonald mosquito model
divmod

Division of integers
setup_mosquito_BQ

Setup blood feeding & oviposition (BQ) behavioral state mosquito model
set_p_mosquito_RM

Set daily survival probability for Ross-Macdonald mosquito model
step_humans.MOI_stochastic

Update MOI human model (stochastic)
setup_mosquito_RM

Setup generalized Ross-Macdonald mosquito model
set_molt_aqua_BH

Set daily maturation probability for Beverton-Holt aquatic mosquito model
set_nu_mosquito_RM

Set number of eggs laid per oviposition for Ross-Macdonald mosquito model
get_K_aqua_BH

Get carrying capacity for Beverton-Holt aquatic mosquito model
step_humans.MOI_deterministic

Update MOI human model (deterministic)
get_config_humans_MOI

Get parameters for MOI human model
step_humans.MOI

Update MOI human model
step_aqua.trace

Update aquatic (immature) mosquito populations for forced emergence
step_humans.SIS

Update SIS human model
make_MicroMoB

Make a model object
observe_pfpr

Observe PfPR in human strata
step_humans.SIR_stochastic

Update SIR human model (stochastic)
get_config_aqua_trace

Get parameters for aquatic (immature) model with forced emergence
time_patch_varying_parameter

Input parameters that may vary by time and patch
time_varying_parameter

Input parameters that may vary by time
get_config_mosquito_trace

Get parameters for null mosquito model
get_surv_aqua_BH

Get daily survival probability for Beverton-Holt aquatic mosquito model
output_aqua

Get output for aquatic (immature) mosquito populations
output_aqua.BH

Get output for aquatic (immature) mosquito populations with Beverton-Holt dynamics
get_tmax

Get maximum time of simulation from model object
get_config_humans_SIS

Get parameters for SIS human model
setup_aqua_BH

Setup aquatic (immature) mosquito model with Beverton-Holt dynamics
output_mosquitoes.trace

Get output for null mosquito populations
setup_humans_SIR

Setup humans with SIR infection model
setup_humans_SIS

Setup humans with SIS pathogen model
output_mosquitoes

Get output for mosquito populations
setup_aqua_trace

Setup aquatic (immature) mosquito model with trace (forced) emergence
output_aqua.trace

Get output for aquatic (immature) mosquito populations with forced emergence
set_K_aqua_BH

Set carrying capacity for Beverton-Holt aquatic mosquito model
set_eip_mosquito_RM

Set extrinsic incubation period for Ross-Macdonald mosquito model
setup_alternative_trace

Setup trace driven alternative blood hosts
get_lambda_aqua_trace

Get daily emergence for Beverton-Holt aquatic mosquito model
get_molt_aqua_BH

Get daily maturation probability for Beverton-Holt aquatic mosquito model
output_mosquitoes.RM

Get output for Ross-Macdonald mosquito populations
set_surv_aqua_BH

Set daily survival probability for Beverton-Holt aquatic mosquito model
get_f_mosquito_RM

Get feeding rate for Ross-Macdonald mosquito model
step_humans.SIP_deterministic

Update SIP human model (deterministic)
get_kappa_mosquito_RM

Get kappa for Ross-Macdonald mosquito model
get_tnow

Get current time of simulation from model object
get_psi_mosquito_RM

Get mosquito dispersal matrix for Ross-Macdonald mosquito model
sample_stochastic_matrix

Sample a stochastic matrix
get_q_mosquito_RM

Get human blood feeding fraction for Ross-Macdonald mosquito model
set_f_mosquito_RM

Set feeding rate for Ross-Macdonald mosquito model
is_binary

Does a numeric object consist of only zeros and ones?
set_psi_mosquito_RM

Set mosquito dispersal matrix for Ross-Macdonald mosquito model
set_kappa_mosquito_RM

Set kappa for Ross-Macdonald mosquito model
set_q_mosquito_RM

Set human blood feeding fraction for Ross-Macdonald mosquito model
step_humans.SIP_stochastic

Update SIP human model (stochastic)
sample_stochastic_vector

Sample a stochastic vector
step_aqua.BH_deterministic

Update aquatic (immature) mosquito populations for deterministic Beverton-Holt dynamics
step_humans.SIR_deterministic

Update SIR human model (deterministic)
step_humans.SIR

Update SIR human model
step_aqua.BH

Update aquatic (immature) mosquito populations for Beverton-Holt dynamics
step_mosquitoes

Update mosquito population
step_mosquitoes.trace

Update null mosquito population
step_mosquitoes.BQ_deterministic

Update blood feeding & oviposition (BQ) behavioral state mosquitoes (deterministic)
step_mosquitoes.BQ

Update blood feeding & oviposition (BQ) behavioral state mosquitoes
setup_humans_MOI

Setup humans with MOI (multiplicity of infection) pathogen model
step_aqua

Update aquatic (immature) mosquito populations
setup_humans_SIP

Setup humans with SIP pathogen model
step_humans.SIP

Update SIP human model
step_aqua.BH_stochastic

Update aquatic (immature) mosquito populations for stochastic Beverton-Holt dynamics
step_mosquitoes.RM_deterministic

Update Ross-Macdonald mosquitoes (deterministic)
step_humans

Update human population
step_mosquitoes.RM_stochastic

Update Ross-Macdonald mosquitoes (stochastic)
strata_to_residency_proportion

Helper function for lumped population strata (proportional assignment)
step_mosquitoes.RM

Update Ross-Macdonald mosquitoes
step_mosquitoes.BQ_stochastic

Update blood feeding & oviposition (BQ) behavioral state mosquitoes (stochastic)
strata_to_residency_counts

Helper function for lumped population strata (counts)
step_humans.SIS_stochastic

Update SIS human model (stochastic)
setup_visitor_trace

Setup trace driven visitors
setup_mosquito_trace

Setup null mosquito model
step_humans.SIS_deterministic

Update SIS human model (deterministic)
api_config_global

Read global configuration options