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
Related Software
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.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).