Skip to contents

Malaria (and other mosquito-transmitted pathogens) can be understood as complex adaptive systems: they are non-linear interactions among humans, parasites, mosquitoes, and managers that are forced by weather, landscapes and hydrology, and some biotic factors.

Dynamical systems developed to understand malaria epidemiology, malaria transmission dynamics, and mosquito ecology are naturally modular. Given the complexity, it is sometimes difficult to tease apart effects of forcing by malaria control, weather, or biotic factors. In developing or analyzing these models, it is often useful to isolate some part of the system, and force the rest using a function that stands in place of another complex module. The forcing can arise from statistical analysis of data (e.g. a time series analysis of temperature data) or it could take the place of a dynamical term in some closely related dynamical system (e.g the emergence rate of adult mosquitoes from aquatic habitats). We call these trace functions.

Constructors

The trace function library has two core constructors:

  • make_F_t(F_obj) returns a function of the form \(F(t)\)

  • make_function(F_obj) returns a function of the form \(F(t,V)\)

Both functions construct a function from a function object or F_obj. These two function classes are, in turn, used by two other core functions:

  • make_ts_function constructs a composed, multiplicative time series function.

  • make_F_a constructs a cohort forcing function, a function to study cohort dynamics in a cohort as it ages, as a function of:

    • a composed time series function describing average exposure in a population;

    • a function describing relative biting rates by age.

Supported Software

ramp.func supports other ramp software:

  • SimBA – ramp.xds, ramp.func and four other packages developed for simulation-based analytics

  • ramp.falciparum — a deep dive into the mathematical epidemiology of falciparum malaria

  • ramp.micro – micro-simulation for mosquito ecology and malaria transmission.

ramp.func — was originally a part of other ramp software packages. A set functions to model exposure for cohort dynamics was originally devised for ramp.falciparum, which takes a deep dive into falciparum malaria epidemiology. Later, the same functionality was built into ramp.xds and ramp.micro. ramp.func was developed to avoid maintaining duplicate software libraries.

SimBA

In SimBA, we can use the trace function library to build functions that set the value of one or more dynamical terms, configured using one of the trivial modules in ramp.xds.

  • \(\Lambda(t)\) — the emergence rate of adult, female mosquitoes

  • \(\eta(t)\) — egg laying by adult mosquitoes

  • \(fqZ(t)\) — net daily biting by infective, adult mosquitoes in a patch

  • \(\kappa(t)\) — the net infectiousness (NI)

  • \(E(t)\) — the daily entomological inoculation rate (EIR)

  • \(h(t)\) — the daily force of infection (FoI)

In ramp.forcing, these functions can also be used to construct non-autonomous dynamical systems, where parameters can vary with respect to time, including models for exogenous variables, intervention coverage, parameter values, or functional responses to weather.

In ramp.work, we use trace functions to fit models to time series data.

ramp.falciparum

Alternatively, in ramp.falciparum, where we take a deep dive into malaria epidemiology, we often find it useful to construct functions to model exposure in cohorts as a function of age (see Cohort Dynamics).

ramp.micro

Microsimulation models force models for adult mosquito ecology using the term \(\Lambda(t)\) (like SimBA).