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_functionconstructs a composed, multiplicative time series function.-
make_F_aconstructs 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.funcand four other packages developed for simulation-based analyticsramp.falciparum— a deep dive into the mathematical epidemiology of falciparum malariaramp.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).