-
Notifications
You must be signed in to change notification settings - Fork 30
ModelClinical
The pathogenesis models determine whether an individual becomes sick, and whether the sickness is uncomplicated or severe, whether a sick individual survives. This includes models for both direct and indirect mortality.
Different model variants are implemented including:
-
Base pathogenesis model This is a stochastic model that relates the probability of a clinical attack of malaria to the peripheral parasite densities via a pyrogenic threshold that itself responds dynamically to the parasite load (Smith et al, 2006) (this is implemented in the
PyrogenPathogenesis
class): The parameters of the model have been estimated by fitting it to the relationship between incidence of clinical episodes and the entomologic inoculation rate, using age-specific incidence data from two villages in Senegal and one village in Tanzania. -
Predetermined bouts pathogenesis model This is a variant of the base pathogenesis model in which bouts occur deterministically when the parasite density exceeds the pyrogenic threshold (
PredetPathogenesis
class). -
Mueller pathogenesis model This is a stochastic model that uses a log-linear function of parasite densities to determine the probability of a clinical bout, based on equations fitted by Mueller et al, 2009 to data from Papua New Guinea. There is no explicit pyrogenic threshold in this model. (This is implemented in the
MuellerPathogenesis
class).
These model variants are specified within the <model>
XML element. The clinical models encapsulate clinical fever, diagnosis and treatment (excluding drug action) of fevers, and clinical outcomes.
Severe episodes are a subset of the acute episodes. Two sub-categories of severe malaria are considered Ross et al 2006:
- Acute episodes with extremely high parasite densities: These are modelled using a constant parasite density threshold.
- Acute episodes accompanied by a co-morbidity or other risk factor enhancing susceptibility: Co-morbidity is modelled with an age-dependent function.
- Direct mortality results from a severe malaria episode. The probability of death is age-dependent and also depends on whether the individual presents for treatment at a hospital or not. The model, described in Ross et al 2006, was parameterized using hospital data and malaria-specific mortality rates.
- Indirect mortality
- Indirect mortality Indirect deaths are considered as those that would not have occurred in the absence of malaria, but would not have been classified as malaria by a competent physician. The earlier malaria illness serves to weaken the host. An age-dependent function is used to provide the probability of indirect mortality conditional on an acute episode having occurred. The model, described in Ross et al 2006, was fitted to all-cause mortality rates in settings with varying malaria transmission intensities.
-
Neonatal mortality The model determines if a neonate dies due to P. falciparum malaria infection of their mother while pregnant. These are counted as indirect deaths. Individual pregnancies are not simulated, instead the stochastic model relates the probability of indirect deaths in the neonatal period to the prevalence in individuals of childbearing age. The model is presented in Ross&Smith 2006 and has two stages (i) the prevalence of P. falciparum in the general population to the prevalence in primigravidae and (ii) the prevalence in primigravidae to indirect malaria neonatal mortality. (This is implemented in the
NeonatalMortality
class). The neonatal mortality was parameterized assuming microscopy and requires that this is used as a diagnostic.
Non-malarial fevers can be simulated to account for co-incidental parasitaemia being treated. Without non-malarial fevers, only malarial fevers trigger treatment.
Non-malaria fevers are simulated as events with a defined age incidence.
In OpenMalaria, the way to specify the age-incidence is a bit convoluted and works as follows: It takes the average age between two lower bounds on consecutive lines, and assigns the value of the first line. This is then subsequently interpolated linearly. The below example generates four points: one at c(0,0.7076), at c(2.5,0.8538),at c(7.5,1.0), and at c(10,0), and there is an additional point at c(50, 0), where 50 is midway between 10 and 90, the maximum age.
The incidence 'value' is the probability per 5-day time step of having one or more days with a non-malarial fever, that together make up one 5-day non-malarial disease episode that could potentially trigger a treatment. So for 1 NMF episodes per year (on average), the incidence value needs to be set to 1/73 and the health system memory (HSM) equal to one time-step. If the HSM is set to 6 (6*5=30 days), 7.5 - 10% less NMF disease episodes are recorded (because some are not registered as new episodes).
Daily prevalence of fever needs to be converted into 1-day time step incidence of fever, and then 5-day time step incidence of fever.
The assumption made is that the daily incidence of fever bouts that have the possibility of triggering treatment that day is the same as the 'point' prevalence of fever. I prefer to use the term 'fever bout' as an uninterrupted period of time with temperature above a threshold (of say 37.5 C), over the term 'fever episode', if this is similar to malaria episode, which could comprise of a set of bouts due to the same aetiology. Note that this is slightly different from: A bout of illness: An uninterrupted set of days during which a patient is considered, or considers himself or herself to be ill for at least part of each day (Crowell et al., 2013 http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3585385/table/pone-0057297-t001/)
This assumption is perhaps quite bold.
In the cross sectional data, the temperature is taken once (at some point during the day), and the person is declared as febrile or not. If a fever bout lasts less than a day, it is of course well possible that the fever bout is missed. Perhaps the shorter bouts are less likely to trigger treatment anyway, but we not aware of any data on the length of bouts of any non-malarial fevers.
This assumption is similar in the malaria therapy data used in OpenMalaria, on the basis of which it is decided whether the patient was febrile or not that day. In OpenMalaria, per day, one parasite density is sampled per person, and calculated whether it is high enough to cause a fever that day. If malarial fever bouts last roughly as long as non-malarial fever bouts, the error in the assumption might be comparable. In the five-day time step, five parasite densities are sampled and the highest taken to calculate if there is a malarial fever (at least one) that time-step.
In order to convert the daily incidence of non-malarial fever to 5-day time step incidence of having at least one fever per 5-day time step (that could trigger treatment similarly to malarial fevers), we can not simply multiply the incidence by five, but must calculate it as 5-day probability of a NMF triggering treatment = 1-(1-dailyProbNMF)^5, assuming that every day with the non-malarious illness has the same probability of being febrile.
Using Kilombero Malaria Project data described in Smith et al., 1995 "Is fever a good sign for clinical malaria", focusing only on axillary temperature, and combining this data with the malaria attributable fraction (MAF) from the same paper to calculate the incidence of non-malarial fever (NMF), a parameterization was made. This ignores all the non-elevated temperature related illness which could also lead to treatment seeking (the point of that paper), but since in OpenMalaria, we also only look at fever as a symptom triggering malaria treatment seeking, this seems balanced. A smoothing spline was fit through the data to obtain age-incidence.
The model section (excluding here the "human" and "parameters" sections), looks as follows for schema 30:
<model>
<ModelOptions>
<!-- <option name="VECTOR_SIMPLE_MPD_MODEL" value="true"/> -->
<option name="NON_MALARIA_FEVERS" value="true"/>
</ModelOptions>
<clinical healthSystemMemory="6">
<NonMalariaFevers>
<incidence>
<group lowerbound="0" value="0.322769924518357"/>
<group lowerbound="0" value="0.308520194304172"/>
<group lowerbound="1" value="0.279441774808493"/>
<group lowerbound="2" value="0.250431781111273"/>
<group lowerbound="3" value="0.223285859756841"/>
<group lowerbound="4" value="0.199298352451799"/>
<group lowerbound="5" value="0.179376872365614"/>
<group lowerbound="6" value="0.163623659390782"/>
<group lowerbound="7" value="0.152227726923469"/>
<group lowerbound="8" value="0.145022785567758"/>
<group lowerbound="9" value="0.141493087461765"/>
<group lowerbound="10" value="0.140473293219353"/>
<group lowerbound="11" value="0.141109775159515"/>
<group lowerbound="12" value="0.142644475217328"/>
<group lowerbound="13" value="0.144335079395766"/>
<group lowerbound="14" value="0.145964032924869"/>
<group lowerbound="15" value="0.147708915135714"/>
<group lowerbound="16" value="0.149731543445568"/>
<group lowerbound="17" value="0.151887428568276"/>
<group lowerbound="18" value="0.154060663485195"/>
<group lowerbound="19" value="0.156179169710494"/>
<group lowerbound="20" value="0.158135015380583"/>
<group lowerbound="21" value="0.159704766482219"/>
<group lowerbound="22" value="0.160807788387655"/>
<group lowerbound="23" value="0.161427976448279"/>
<group lowerbound="24" value="0.161620429119137"/>
<group lowerbound="25" value="0.16144021875986"/>
<group lowerbound="26" value="0.160943264630612"/>
<group lowerbound="27" value="0.160217573697398"/>
<group lowerbound="28" value="0.159422614374451"/>
<group lowerbound="29" value="0.158542519631641"/>
<group lowerbound="30" value="0.157501217628248"/>
<group lowerbound="31" value="0.156175160594841"/>
<group lowerbound="32" value="0.154402302191411"/>
<group lowerbound="33" value="0.152102040636481"/>
<group lowerbound="34" value="0.14921450014676"/>
<group lowerbound="35" value="0.145714433541659"/>
<group lowerbound="36" value="0.141800502067518"/>
<group lowerbound="37" value="0.137916853907569"/>
<group lowerbound="38" value="0.134503529382102"/>
<group lowerbound="39" value="0.131746276580642"/>
<group lowerbound="40" value="0.12969902537497"/>
<group lowerbound="41" value="0.128398077347679"/>
<group lowerbound="42" value="0.127864136551891"/>
<group lowerbound="43" value="0.12804497197004"/>
<group lowerbound="44" value="0.128894055047661"/>
<group lowerbound="45" value="0.130350838992718"/>
<group lowerbound="46" value="0.132286605622701"/>
<group lowerbound="47" value="0.134599921072495"/>
<group lowerbound="48" value="0.137212726976988"/>
<group lowerbound="49" value="0.140035253913284"/>
<group lowerbound="50" value="0.142934573453621"/>
<group lowerbound="51" value="0.145830221511879"/>
<group lowerbound="52" value="0.148674810561069"/>
<group lowerbound="53" value="0.151497963594518"/>
<group lowerbound="54" value="0.15438856687865"/>
<group lowerbound="55" value="0.157403790093505"/>
<group lowerbound="56" value="0.16059513222516"/>
<group lowerbound="57" value="0.16402433342886"/>
<group lowerbound="58" value="0.16770481415944"/>
<group lowerbound="59" value="0.171626873047865"/>
<group lowerbound="60" value="0.175748327054247"/>
<group lowerbound="61" value="0.180030857856799"/>
<group lowerbound="62" value="0.184411365583771"/>
<group lowerbound="63" value="0.188816421789366"/>
<group lowerbound="64" value="0.19316997803338"/>
<group lowerbound="65" value="0.197435603275487"/>
<group lowerbound="66" value="0.201578808813379"/>
<group lowerbound="67" value="0.205556806881398"/>
<group lowerbound="68" value="0.209307183457343"/>
<group lowerbound="69" value="0.212783260344084"/>
<group lowerbound="70" value="0.215944154621391"/>
<group lowerbound="71" value="0.218749275266548"/>
<group lowerbound="72" value="0.221187990639016"/>
<group lowerbound="73" value="0.223361260399378"/>
<group lowerbound="74" value="0.225363436789592"/>
<group lowerbound="75" value="0.227254280093211"/>
<group lowerbound="76" value="0.229084576349576"/>
<group lowerbound="77" value="0.230891971097789"/>
<group lowerbound="78" value="0.232690225166173"/>
<group lowerbound="79" value="0.234484973338876"/>
<group lowerbound="80" value="0.236276361586796"/>
<group lowerbound="81" value="0.238064394629696"/>
<group lowerbound="82" value="0.239849077182917"/>
<group lowerbound="83" value="0.241630413957381"/>
<group lowerbound="84" value="0.243408409659591"/>
<group lowerbound="85" value="0.245183068991633"/>
<group lowerbound="86" value="0.246954396651183"/>
<group lowerbound="87" value="0.248722397331501"/>
<group lowerbound="88" value="0.250487075721441"/>
<group lowerbound="89" value="0.252248436505447"/>
<group lowerbound="90" value="0.253127874257909"/>
</incidence>
<prNeedTreatmentNMF>
<group lowerbound="0" value="1"/>
</prNeedTreatmentNMF>
<prNeedTreatmentMF>
<group lowerbound="0" value="1"/>
</prNeedTreatmentMF>
</NonMalariaFevers>
</clinical>
</model>
An alternative, simpler, set of age-specific incidence rates of non-malarial fever, (derived from a meta-analysis of multiple studies) is as follows:
Age-group | All fever pppy | Estimated non-malarial fevers pppy |
---|---|---|
0-11 mo. | 9.1 | 6.08 |
12-59 mos | 9.8 | 6.08 |
5-9 vrs. | 6.06 | 3.81 |
10-14 yrs. | 4.16 | 2.62 |
15-59 yrs. | 6.43 | 4.05 |
60 yrs + | 8.6 | 5.41 |
Table: Estimated incidence of non-malarial fevers. Source: Incidence of non-malarial fever in various age-groups and epidemiological settings, Allan Schapira, 8/12/2009.
In order to transform any such dataset into a continuous function for frequency given age, we interpolate linearly on the data-points generated as follows:
- For each age group, add a data point centred on the age axis with frequency as given in the age group.
- Add data points at ages 0 and infinity, taking frequency from that of the youngest and oldest age groups. We model the incidence of non-malarial fever as an interpolated linear function. Non-malarial fevers can only start at a given time point if it has been determined that a malarial fever is not starting at that time point. If both a non-malarial fever and a malarial fever occur within the health system memory, only the malaria episode is reported.
Each non-malarial fever has a certain age-based probability of needing antibiotic treatment, which we assume to be independent of parasitological status.
| Download openmalaria | Installation instructions | XML Schema Documentation |
XML Schema Version | Program version | master |
develop |
---|---|---|---|
43 | schema-43.0 |
- User Guide
- Compilation Guide
- Developer Guide
- Schema Update Guide
- Scenario Design Guide
- Monitoring Guide
- Changelog
- Schema Documentation
- Human demography
- Levels of transmission
- Parasite dynamics within humans
- P vivax dynamics
- Vector bionomics and transmission to humans
- Mosquito population dynamics
- Clinical (illness) models
- Time in the models