LarvalMicrosporidiaIntervention#
The LarvalMicrosporidiaIntervention is a node-level intervention that mimics seeding water bodies with microsporidia or other endosymbiont to infect mosquito larvae, reducing their ability to transmit malaria. The intervention distributes a specific microsporidia strain and can be limited to a particular larval habitat type. When no other LarvalMicrosporidiaIntervention**s are present, the portion of larvae infected each day is the product of the current **Infectivity_Config value and Habitat_Coverage. The Infectivity_Config waning effect can be configured to decay over time.
Multiple interventions can target larvae in the same habitat. The algorithm resolves these into a single map of strain → fraction newly infected.
Step 1: Filter
Only interventions matching the queried habitat (or ALL_HABITATS) and strains matching species are considered.
Step 2: Process each intervention sequentially
For each new intervention, the larval population is conceptually divided into two groups:
Already claimed by a previous strain — each previously processed strain has coverage over some fraction of the population and has been processed to be non-overlapping with other previously-processed strains.
Unclaimed — the remainder not yet covered by any strain.
The new intervention’s coverage reaches into both groups:
For each previously-processed strain: - From already-claimed larvae: Where the new intervention overlaps a previous strain’s coverage, the overlapping portion is split proportionally by effect strength. If strain A has effect 0.3 and the new strain B has effect 0.7, then of the overlapping larvae, 30% stay with A and 70% go to B. The non-overlapping portion of the previous strain’s coverage (i.e., 1 − coverage of the new intervention) remains unchanged.
For unclaimed larvae: - The new intervention claims unclaimed × coverage.
Step 3: Merge same-strain entries
If the new intervention is distributing a previously-processed strain, their resolved coverages are summed and their effects are combined as a coverage-weighted average:
new_coverageA = coverage_A + coverage_A1 new_effectA = (coverage_A × effect_A + coverage_A1 × effect_A1) / new_coverageA
If this is a new strain, its coverage and effect are added to the previously-processed strains.
This resolves the interventions processed so far into non-overlapping coverages with effects, one for each strain.
Step 4: Repeat for all remaining interventions
The process repeats Steps 1-3 until all the interventions matching this habitat and species are processed.
Step 5: Compute final infectivity
For each strain, the final fraction newly infected is coverage × effect.
Key properties
Order-dependent: Processing interventions in different orders can yield different results because each new intervention redistributes from the current state.
Conservation: Total coverage across all strains never exceeds 1.0 — every larva is accounted for exactly once (either claimed by a strain or uninfected).
Proportional competition: When two strains overlap, the stronger effect wins a larger share, but neither fully displaces the other.
At a glance:
Distributed to: Nodes
Serialized: No, it needs to be redistributed when starting from a serialized file.
Uses insecticides: No
Time-based expiration: No. It will continue to exist even if efficacy is zero.
Purge existing: No. Already existing intervention(s) of this class continue(s) to exist together with any new interventions of this class. Their coverages and effects are resolved per the algorithm described above.
Vector killing contributes to: Does not apply
Vector effects: Microsporidia/endosymbiont infection of larvae
Vector sexes affected: Both male and female larvae
Vector life stage affected: Larval
Note
Parameters are case-sensitive. For Boolean parameters, set to 1 for true or 0 for false. Minimum, maximum, or default values of “NA” indicate that those values are not applicable for that parameter.
EMOD does not use true defaults; that is, if the dependency relationships indicate that a parameter is required, you must supply a value for it. However, many of the tools used to work with EMOD will use the default values provided below.
JSON format does not permit comments, but you can add “dummy” parameters to add contextual information to your files. Any keys that are not EMOD parameter names will be ignored by the model.
The table below describes all possible parameters with which this class can be configured. The JSON example that follows shows one potential configuration.
Parameter |
Data type |
Minimum |
Maximum |
Default |
Description |
Example |
|---|---|---|---|---|---|---|
Cost_To_Consumer |
float |
0 |
999999 |
0 |
The unit cost per vector control (unamortized). |
{
"Cost_To_Consumer": 3.75
}
|
Disqualifying_Properties |
array of strings |
NA |
NA |
[] |
A list of NodeProperty key:value pairs that cause an intervention to be aborted (persistent interventions will stop being distributed to nodes with these values). See NodeProperties and IndividualProperties parameters for more information. |
{
"Disqualifying_Properties": [
"InterventionStatus:LostForever"
]
}
|
Dont_Allow_Duplicates |
boolean |
0 |
1 |
0 |
Prevents a node from receiving a new intervention with the same Intervention_Name. |
{
"Dont_Allow_Duplicates": 0
}
|
Habitat_Coverage |
float |
0 |
1 |
1 |
The portion of the targeted habitat that is treated with microsporidia. |
{
"Habitat_Coverage": 0.8
}
|
Habitat_Target |
enum |
NA |
NA |
ALL_HABITATS |
The larval habitat type to target with the intervention. If not ALL_HABITATS, the type must be one of those configured in Vector_Species_Params, Habitats for the species that the microsporidia strain infects. See Larval habitat parameters for more information. Possible values are:
|
{
"Habitat_Target": "WATER_VEGETATION"
}
|
Infectivity_Config |
json object |
NA |
NA |
NA |
The configuration of the daily microsporidia infectivity applied to larvae and its waning over time. Specify how this effect decays over time using one of the Waning effect classes. |
{
"Infectivity_Config": {
"Box_Duration": 100,
"Decay_Time_Constant": 150,
"Initial_Effect": 0.5,
"class": "WaningEffectBoxExponential"
}
}
|
Intervention_Name |
string |
NA |
NA |
LarvalMicrosporidiaIntervention |
The optional name used to refer to this intervention as a means to differentiate it from others that use the same class. |
{
"Intervention_Name": "LarvalMicrosporidiaIntervention"
}
|
New_Property_Value |
string |
NA |
NA |
“” |
An optional NodeProperty key:value pair that will be assigned when the intervention is applied. See NodeProperties and IndividualProperties parameters for more information. |
{
"New_Property_Value": "HasHealthCare:YES"
}
|
Strain_Name |
string |
NA |
NA |
NA |
The name of the microsporidia strain used by the intervention to infect the larvae. This must match a strain defined in Vector_Species_Params, Microsporidia. Since microsporidia strain names must be unique between the species, you don’t need to specify the target species. |
{
"Strain_Name": "Strain_A"
}
|
{
"Events": [{
"class": "CampaignEvent",
"Nodeset_Config": {
"class": "NodeSetAll"
},
"Start_Day": 1,
"Event_Coordinator_Config": {
"class": "StandardInterventionDistributionEventCoordinator",
"Intervention_Config": {
"class": "LarvalMicrosporidiaIntervention",
"Strain_Name": "Strain_A",
"Habitat_Target": "ALL_HABITATS",
"Habitat_Coverage": 1.0,
"Infectivity_Config": {
"class": "WaningEffectBox",
"Box_Duration": 100,
"Initial_Effect": 0.5
},
"Cost_To_Consumer": 0
}
}
}],
"Use_Defaults": 1
}