Skip to contents

Malaria and other mosquito-transmitted pathogens are complex adaptive systems, so we develop mathematical models for the epidemiology, transmission dynamics, and control. These models are naturally complex, but they are also modular. In developing or analyzing these models, it is often useful to isolate some part of the system, and force it using some function. We call these functions trace functions.

Constructing Functions

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 using an object called F_obj

The name — ramp.func — arises because it was originally part of the ramp family of software packages. A set of functions to model forcing was originally devised for ramp.falciparum, which takes a deep dive into facliparum malaria epidemiology. Later, the same functionality was built into ramp.xds. ramp.func was built to avoid maintaining duplicate software libraries.

ramp.xds

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\) — the emergence rate of adult, female mosquitoes

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

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

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

ramp.forcing

In ramp.forcing, these functions can 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.

ramp.work

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 Cohorts).