Skip to content

Releases: InstituteforDiseaseModeling/EMOD

v2.20

Compare
Choose a tag to compare

V2.20

The EMOD v2.20 release includes support for typhoid disease modeling, including new campaign classes: EnvironmentalDiagnostic, TyphoidCarrierDiagnostic, TyphoidVaccine, and TyphoidWASH.

ImmunityBloodTest was added for identifying whether an individual’s immunity meets a specified threshold and then broadcasts an event based on the results. This new campaign class can be used with all supported disease modeling sim types.

InterventionForCurrentPartners can be used with STI and HIV sim types and provides a mechanism for the partners of individuals in the care system to also seek care.

OutbreakIndividualTBorHIV extends OutbreakIndividual and allows for specifying HIV or a specific strain of infection for TB.

In addition, configuration and campaign parameters that set the type of distribution (uniform, Gaussian, etc.) of infectiousness, incubation period, and delivery of interventions have been refactored. The number of distributions available and naming conventions used are now consistent across the configuration and campaign files. This change does not affect the distributions used in the demographics files.

A beta release of new campaign classes (not yet fully tested) are included to support surveillance of events, where events are listened to, detected, and broadcast when a threshold has been met. These classes include: BroadcastCoordinatorEvent, BroadcastNodeEvent, DelayEventCoordinator, SurveillanceEventCoordinator, and TriggeredEventCoordinator.

New configuration parameters

For the generic simulation type, the following new configuration parameters are available:

  • Enable_Infectivity_Reservoir: Controls whether or not an exogeneous reservoir of infectivity will be included in the simulation and allows for the infectivity in a node to be increased additively. When set to 1 (true), the demographics parameter InfectivityReservoirSize is expected in NodeAtttributes for each node.
  • Minimum_End_Time: The minimum time step the simulation must reach before checking for early termination conditions. Enable_Abort_Zero_Infectivity must be set to 1 (true).
  • Enable_Abort_Zero_Infectivity: Controls whether or not the simulation should be ended when total infectivity falls to zero. Supported only in single-node simulations.
  • Random_Number_Generator_Policy: The policy that determines if random numbers are generated for objects in a simulation on a per-core or per-node basis.
  • Enable_Random_Generator_From_Serialized_Population: The type of random number generator to use for objects in a simulation. Must set the RNG seed in Run_Number.

New configuration parameters (Distribution)

Note: These configuration parameters are part of the refactoring of distribution parameters.

For the generic simulation type, the following new configuration parameters are available:

  • Incubation_Period_Distribution: The distribution type to use for assigning the incubation period to each individual in the population. Each individual’s value is a random draw from the distribution.
  • Infectious_Period_Distribution: The distribution type to use for assigning the infectious period to each individual in the population. Each individual’s value is a random draw from the distribution.
  • Incubation_Period_Mean_1: The mean of the first exponential distribution when Incubation_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.
  • Incubation_Period_Mean_2: The mean of the second exponential distribution when Incubation_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.
  • Incubation_Period_Proportion_1: The proportion of individuals in the first exponential distribution when Incubation_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.
  • Infectious_Period_Mean_1: The mean of the first exponential distribution when Infectious_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.
  • Infectious_Period_Proportion_1: The proportion of individuals in the first exponential distribution when Infectious_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.
  • Infectious_Period_Mean_2: The mean of the second exponential distribution when Infectious_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.
  • Incubation_Period_Constant: The incubation period to use for all individuals.
  • Infectious_Period_Constant: The infectious period to use for all individuals.
  • Incubation_Period_Exponential: The mean incubation period when Incubation_Period_Distribution is set to EXPONENTIAL_DISTRIBUTION.
  • Infectious_Period_Exponential: The mean infectious period when Infectious_Period_Distribution is set to EXPONENTIAL_DISTRIBUTION.
  • Incubation_Period_Gaussian_Mean: The mean of the incubation period when Incubation_Period_Distribution is set to GAUSSIAN_DISTRIBUTION.
  • Incubation_Period_Gaussian_Std_Dev: The standard deviation of the incubation period when Incubation_Period_Distribution is set to GAUSSIAN_DISTRIBUTION.
  • Infectious_Period_Gaussian_Mean: The mean of the infectious period when Infectious_Period_Distribution is set to GAUSSIAN_DISTRIBUTION.
  • Incubation_Period_Lambda: The scale value for the incubation period when Incubation_Period_Distribution is set to WEIBULL_DISTRIBUTION.
  • Infectious_Period_Max: The maximum infectious period when Infectious_Period_Distribution is set to UNIFORM_DISTRIBUTION.
  • Infectious_Period_Min: The minimum infectious period when Infectious_Period_Distribution is set to UNIFORM_DISTRIBUTION.
  • Incubation_Period_Proportion_0: The proportion of individuals to assign a value of zero days incubation when Incubation_Period_Distribution is set to DUAL_CONSTANT_DISTRIBUTION.
  • Incubation_Period_Peak_2_Value: The incubation period value to assign to the remaining individuals when Incubation_Period_Distribution is set to DUAL_CONSTANT_DISTRIBUTION.
  • Infectious_Period_Proportion_0: The proportion of individuals to assign a value of zero days infectiousness when Infectious_Period_Distribution is set to DUAL_CONSTANT_DISTRIBUTION.
  • Infectious_Period_Peak_2_Value: The infectious period value to assign to the remaining individuals when Infectious_Period_Distribution is set to DUAL_CONSTANT_DISTRIBUTION.
  • Infectious_Period_Gaussian_Std_Dev: The standard deviation of the infectious period when Infectious_Period_Distribution is set to GAUSSIAN_DISTRIBUTION.
  • Infectious_Period_Lambda: The scale value for the infectious period when Infectious_Period_Distribution is set to WEIBULL_DISTRIBUTION.
  • Incubation_Period_Log_Normal_Width: The width of the incubation period when Incubation_Period_Distribution is set to LOG_NORMAL_DISTRIBUTION.
  • Infectious_Period_Log_Normal_Width: The width of the infectious period when Infectious_Period_Distribution is set to LOG_NORMAL_DISTRIBUTION.
  • Incubation_Period_Max: The maximum incubation period when Incubation_Period_Distribution is set to UNIFORM_DISTRIBUTION.
  • Incubation_Period_Min: The minimum incubation period when Incubation_Period_Distribution is set to UNIFORM_DISTRIBUTION.
  • Incubation_Period_Poisson_Mean: The mean of the incubation period when Incubation_Period_Distribution is set to POISSON_DISTRIBUTION.
  • Infectious_Period_Poisson_Mean: The mean of the infectious period with Infectious_Period_Distribution is set to POISSON_DISTRIBUTION.
  • Incubation_Period_Kappa: The shape value for the incubation period when Incubation_Period_Distribution is set to WEIBULL_DISTRIBUTION.
  • Infectious_Period_Kappa: The shape value for the infectious period when Infectious_Period_Distribution is set to WEIBULL_DISTRIBUTION.
  • Incubation_Period_Log_Normal_Mean: The mean of the incubation period when Incubation_Period_Distribution is set to LOG_NORMAL_DISTRIBUTION.
  • Infectious_Period_Log_Normal_Mean: The mean of the infectious period when Infectious_Period_Distribution is set to LOG_NORMAL_DISTRIBUTION.

New configuration parameters (Beta)

Note: These configuration parameters are currently in beta release and have not yet been fully tested.

For the generic simulation type, the following new configuration parameters are available:

  • Report_Surveillance_Event_Recorder: Enables or disables the ReportSurveillanceEventRecorder.csv output report. When enabled (set to 1) reports will be generated for the broadcasted valid coordinator events, as specified in Report_Surveillance_Event_Recorder_Events.
  • Report_Coordinator_Event_Recorder_Events: The list of events to include or exclude in the ReportCoordinatorEventRecorder.csv output report, based on how Report_Coordinator_Event_Recorder_Ignore_Events_In_List is set. This list must not be empty and is dependent upon Report_Coordinator_Event_Recorder being enabled. In addition, the events must be defined in Customer_Coordinator_Events.
  • Report_Surveillance_Event_Recorder_Events: The list of events to include or exclude in the ReportSurveillanceEventRecorder.csv output report, based on how Report_Surveillance_Event_Recorder_Ignore_Events_In_List is set. This list must not be empty and is dependent upon Report_Surveillance_Event_Recorder being enabled.
  • Report_Coordinator_Event_Recorder: Enables or disables the ReportCoordinatorEventRecorder.csv output report for coordinator events. When enabled (set to 1) reports will be generated for the broadcasted valid coordinator events, as specified in Report_Coordinator_Event_Recorder_Events.
  • Report_Surveillance_Event_Recorder_Stats_By_IPs: Specifies an array of (optional) individual property keys, as defined in IndividualProperties in the demographics file, to be added to the ReportSurveillanceEventRecorder.csv output report. For each key:value pair there will be two additional columns (Key:Value:NumIndividuals, Key:Value:NumInfected) added to the report. For example, with a Risk property key assigned the values of LOW and HIGH there would then be four additional columns (Risk:LOW:NumIndividuals, Risk:LOW:NumInfected, Risk:HIGH:NumIndividuals, Risk:HIGH:NumInfected). An empty array equals no additional columns added.
  • Report_Surveillance_Event_Recorder_Ignore_Events_In_List: If set to false (0), only the events listed in the Report_Surveillance_Event_Recorder_Events array will be included in the ReportSurveillanceEventRecorder.csv output report. If set to true (1), only the events listed in the array will be excluded, and all other events will be included. If you want to return all events from the simulation, leave the events array empty.
  • Report_Coordinator_Event_Recorder_Ignore_Events_In_List: If set to false (0), only the events listed in the Report_Coordinator_Event_Recorder_Events array will be included in the ReportCoordinatorEventRecorder.csv output report. If set to true (1), only the events listed in the array will be excluded, and all other events will be included. If you want to return all events from the simulation, leave the events array empty.
  • Report_Node_Event_Recorder_Events: The list of node events to include or exclude in the ReportNodeEventRecorder.csv output report, based on how Report_Node_Event_Recorder_Ignore_Events_In_List is set.
  • Report_Node_Event_Recorder_Node_Properties: Specifies an array of (optional) node property keys, as defined in NodeProperties in the demographics file, to be added as additional columns to the ReportNodeEventRecorder.csv output report.
  • Report_Node_Event_Recorder: Enables or disables the ReportNodeEventRecorder.csv output report. When enabled (set to 1) reports will be generated for the broadcasted valid node events, as specified in Report_Node_Event_Recorder_Events.
  • Report_Node_Event_Recorder_Stats_By_IPs: Specifies an array of (optional) individual property keys, as defined in IndividualProperties in the demographics file, to be added to the ReportNodeEventRecorder.csv output report. For each key:value pair there will be two additional columns (Key:Value:NumIndividuals, Key:Value:NumInfected) added to the report. For example, with a Risk property key assigned the values of LOW and HIGH there would then be four additional columns (Risk:LOW:NumIndividuals, Risk:LOW:NumInfected, Risk:HIGH:NumIndividuals, Risk:HIGH:NumInfected). An empty array equals no additional columns added.
  • Report_Node_Event_Recorder_Ignore_Events_In_List: If set to false (0), only the node events listed in the Report_Node_Event_Recorder_Events array will be included in the ReportNodeEventRecorder.csv output report. If set to true (1), only the node events listed in the array will be excluded, and all other node events will be included. If you want to return all node events from the simulation, leave the node events array empty.

New demographics parameters

  • InfectivityReservoirEndTime: The ending of the exogeneous reservoir of infectivity. This parameter is conditional upon the configuration parameter, Enable_Infectivity_Reservoir, being enabled (set to 1).
  • InfectivityReservoirSize: The quantity-per-timestep added to the total infectivity present in a node; it is equivalent to the expected number of additional infections in a node, per timestep. For example, if timestep is equal to a day, then setting InfectivityReservoirSize to a value of 0.1 would introduce an infection every 10 days from the exogenous reservoir. This parameter is conditional upon the configuration parameter, Enable_Infectivity_Reservoir, being enabled (set to 1).
  • InfectivityReservoirStartTime: The beginning of the exogeneous reservoir of infectivity. This parameter is conditional upon the configuration parameter, Enable_Infectivity_Reservoir, being enabled (set to 1).

New campaign parameters

The following campaign classes are new and can be used in the (specified) models:

ImmunityBloodTest (generic)

The ImmunityBloodTest intervention class identifies whether an individual’s immunity meets a specified threshold (as set with the Positive_Threshold_AcquisitionImmunity campaign parameter) and then broadcasts an event based on the results; positive has immunity while negative does not.

InterventionForCurrentPartners (HIV, STI)

The InterventionForCurrentPartners intervention class provides a mechanism for the partners of individuals in the care system to also seek care. Partners do not need to seek testing at the same time; a delay may occur between the initial test and the partner’s test. If a relationship has been paused, such as when a partner migrates to a different node, the partner will not be contacted.

OutbreakIndividualTBorHIV (tuberculosis)

The OutbreakIndividualTBorHIV class extends OutbreakIndividual class and allows for specifying HIV or a specific strain of infection for TB.

EnvironmentalDiagnostic (typhoid)

The EnvironmentalDiagnostic intervention class identifies contaminated locations by sampling the environment, comparing the value to a threshold, and broadcasting either a positive or negative node event.

TyphoidCarrierDiagnostic (typhoid)

The TyphoidCarrierDiagnostic class extends SimpleDiagnostic class and allows for positive test diagnostic when an individual is a chronic typhoid carrier.

TyphoidVaccine (typhoid)

The TyphoidVaccine intervention class identifies contaminated locations by sampling the environment, comparing the value to a threshold, and broadcasting either a positive or negative node event.

TyphoidWASH (typhoid)

The TyphoidWASH intervention class acts on exposure through either the contact contagion population or the environmental contagion population in the simulation. The intervention can be configured to reduce either exposure dose or exposure frequency for each route, simulating effects of water, sanitation, and hygiene (WASH) interventions.

New campaign parameters (Beta)

Note: These campaign classes and associated parameters are currently in beta release and have not yet been fully tested.

The following Beta campaign classes are new and can be used in the (specified) models:

BroadcastCoordinatorEvent (generic)

The BroadcastCoordinatorEvent coordinator class broadcasts the event you specify. This can be used with the campaign class, SurveillanceEventCoordinator, that can monitor and listen for events received from BroadcastCoordinatorEvent and then perform an action based on the broadcasted event. You can also use this for the reporting of the broadcasted events by setting the configuration parameters, Report_Node_Event_Recorder and Report_Surveillance_Event_Recorder, which listen to events to be recorded.

BroadcastNodeEvent (generic)

The BroadcastNodeEvent coordinator class broadcasts node events. This can be used with the campaign class, SurveillanceEventCoordinator, that can monitor and listen for events received from BroadcastNodeEvent and then perform an action based on the broadcasted event. You can also use this for the reporting of the broadcasted events by setting the configuration parameters, Report_Node_Event_Recorder and Report_Surveillance_Event_Recorder, which listen to events to be recorded.

DelayEventCoordinator (generic)

The DelayEventCoordinator coordinator class insert delays into coordinator event chains. This campaign event is typically used with BroadcastCoordinatorEvent to broadcast events after the delays.

SurveillanceEventCoordinator (generic)

The SurveillanceEventCoordinator coordinator class listens for and detects events happening and then responds with broadcasted events when a threshold has been met. This campaign event is typically used with other classes, such as BroadcastCoordinatorEvent, TriggeredEventCoordinator, and DelayEventCoordinator.

TriggeredEventCoordinator (generic)

The TriggeredEventCoordinator coordinator class listens for trigger events, begins a series of repetitions of intervention distributions, and then broadcasts an event upon completion. This campaign event is typically used with other classes that broadcast and distribute events, such as BroadcastCoordinatorEvent, DelayEventCoordinator, and SurveillanceEventCoordinator.

Deprecated configuration parameters

Base_Population_Scale_Factor has been renamed to x_Base_Population, which is grouped together with the other scale factor parameters beginning with x_. The functional remains the same. Enable_Demographics_Gender has been deprecated. Animal_Reservoir_Type has been replaced with Enable_Infectivity_Reservoir.

The following configuration parameters have been deprecated as a result of the refactoring of distribution parameters for better consistency across the configuration and campaign files.

  • Incubation_Period_Log_Mean
  • Incubation_Period_Log_Width
  • Infectious_Period_Mean
  • Infectious_Period_Std_Dev

Deprecated campaign parameters

The following campaign parameters have been deprecated as a result of the refactoring of distribution parameters for better consistency across the configuration and campaign files.

  • BitingRisk Constant
  • BitingRisk Risk_Distribution_Type
  • BitingRisk Exponential_Mean
  • BitingRisk Gaussian_Mean
  • BitingRisk Gaussian_Std_Dev
  • BitingRisk Uniform_Max
  • BitingRisk Uniform_Min
  • CommunityHealthWorkerEventCoordinator Initial_Amount
  • CommunityHealthWorkerEventCoordinator Initial_Amount_Distribution_Type
  • CommunityHealthWorkerEventCoordinator Initial_Amount_Mean
  • CommunityHealthWorkerEventCoordinator Initial_Amount_Std_Dev
  • DelayedIntervention Delay_Distribution
  • DelayedIntervention Delay_Period
  • DelayedIntervention Delay_Period_Mean
  • DelayedIntervention Delay_Period_Scale
  • DelayedIntervention Delay_Period_Shape
  • DelayedIntervention Delay_Period_Std_Dev
  • DelayEventCoordinator Delay_Distribution
  • DelayEventCoordinator Delay_Period
  • DelayEventCoordinator Delay_Period_Mean
  • DelayEventCoordinator Delay_Period_StdDev
  • HIVDelayedIntervention Delay_Distribution
  • HIVDelayedIntervention Delay_Period
  • HIVDelayedIntervention Delay_Period_Mean
  • HIVDelayedIntervention Delay_Period_Scale
  • HIVDelayedIntervention Delay_Period_Shape
  • HIVDelayedIntervention Delay_Period_Std_Dev
  • HIVMuxer Delay_Distribution
  • HIVMuxer Delay_Period
  • HIVMuxer Delay_Period_Mean
  • HIVMuxer Delay_Period_Scale
  • HIVMuxer Delay_Period_Shape
  • HIVMuxer Delay_Period_Std_Dev
  • MigrateFamily Duration_At_Node_Distribution_Type
  • MigrateFamily Duration_At_Node_Exponential_Period
  • MigrateFamily Duration_At_Node_Fixed
  • MigrateFamily Duration_At_Node_Gausian_Mean
  • MigrateFamily Duration_At_Node_Gausian_StdDev
  • MigrateFamily Duration_At_Node_Uniform_Max
  • MigrateFamily Duration_At_Node_Uniform_Min
  • MigrateFamily Duration_Before_Leaving_Distribution_Type
  • MigrateFamily Duration_Before_Leaving_Exponential_Period
  • MigrateFamily Duration_Before_Leaving_Fixed
  • MigrateFamily Duration_Before_Leaving_Gausian_Mean
  • MigrateFamily Duration_Before_Leaving_Gausian_StdDev
  • MigrateFamily Duration_Before_Leaving_Uniform_Max
  • MigrateFamily Duration_Before_Leaving_Uniform_Min
  • MigrateIndividuals Duration_At_Node_Distribution_Type
  • MigrateIndividuals Duration_At_Node_Exponential_Period
  • MigrateIndividuals Duration_At_Node_Fixed
  • MigrateIndividuals Duration_At_Node_Gausian_Mean
  • MigrateIndividuals Duration_At_Node_Gausian_StdDev
  • MigrateIndividuals Duration_Before_Leaving_Distribution_Type
  • MigrateIndividuals Duration_Before_Leaving_Exponential_Period
  • MigrateIndividuals Duration_Before_Leaving_Fixed
  • MigrateIndividuals Duration_Before_Leaving_Gausian_Mean
  • MigrateIndividuals Duration_Before_Leaving_Gausian_StdDev
  • MigrateIndividuals Duration_Before_Leaving_Uniform_Max
  • MigrateIndividuals Duration_Before_Leaving_Uniform_Min
  • MigrateIndividuals Duration_At_Node_Uniform_Max
  • MigrateIndividuals Duration_At_Node_Uniform_Min
  • UsageDependentBednet Expiration_Distribution_Type
  • UsageDependentBednet Expiration_Percentage_Period_1
  • UsageDependentBednet Expiration_Period
  • UsageDependentBednet Expiration_Period_1
  • UsageDependentBednet Expiration_Period_2
  • UsageDependentBednet Expiration_Period_Mean
  • UsageDependentBednet Expiration_Period_Std_Dev

For more information, see the complete EMOD documentation.

v2.18

Compare
Choose a tag to compare

V2.18

The EMOD v2.18 release includes many new features for all supported simulation types. In particular, the TB_SIM simulation type has been deprecated and replaced with TBHIV_SIM, which does not include HIV transmission but adds the ability to model the effect of HIV coinfection on the spread of TB.

New configuration parameters

The following configuration parameters are new in the Generic model and can be used in all other models:

  • Enable_Maternal_Antibodies_Transmission: Controls whether or not mothers pass antibodies to their infants.
  • Enable_Maternal_Protection: Controls whether or not mothers pass immunity on to their infants.
  • Enable_Natural_Mortality: Controls whether or not individuals are removed from the simulation due to natural (non-disease) deaths.
  • Enable_Skipping: Controls whether or not the simulation uses an optimization that can increase performance by up to 50% in some cases by probablistically exposing individuals rather than exposing every single person. Useful in low-prevalence, high-population scenarios.
  • Enable_Susceptibility_Scaling: Controls whether or not susceptibility is scaled by time as defined by Susceptibility_Scaling_Type.
  • Maternal_Linear_Slope: Slope parameter describing the rate of waning for maternal protection, must be positive. The per-day increase in susceptibility.
  • Maternal_Protection_Type: "The type of maternal protection afforded to infants.
  • Maternal_Sigmoid_HalfMaxAge: The age in days that the level of maternal protection is half of its initial value. Maternal_Protection_Type must be set to SIGMOID_FRACTIONAL or SIGMOID_BINARY.
  • Maternal_Sigmoid_SteepFac: The steepness factor describing the rate of waning for maternal protection, must be positive. Small values imply rapid waning.
  • Maternal_Sigmoid_SusInit: The initial level of maternal protection at age -INF, given as susceptibility. A value of 0.0 implies total protection, a value of 1.0 implies no protection.
  • Node_Contagion_Decay_Rate: The fraction of contagion not carried over to the next time step.
  • Susceptibility_Scaling_Rate: The scaling rate for the variation in time of the log-linear susceptibility scaling. Susceptibility_Scaling_Type must be set to LOG_LINEAR_FUNCTION_OF_TIME.
  • Susceptibility_Scaling_Type: The effect of time on susceptibility.
  • Susceptibility_Type: Controls implementation of an individual's susceptibility.

The following configuration parameters are new in the Malaria model:

  • Genome_Markers: A list of the names (strings) of genome marker(s) that represent the genetic components in a strain of an infection.
  • Resistance: Specifies the drug resistance multiplier.

The following configuration parameters are new in the TBHIV model:

  • ART_Reactivation_Factor: Factor for ART reducing reactivation in HIV+.
  • CD4_Num_Steps: Number of time steps in CD4 forward vector for reactivation.
  • CD4_Time_Step: The length of steps in the CD4 longitudinal tracker.
  • TB_Drug_Cure_Rate: The daily rate at which treatment with an anti-TB drug causes disease clearance.
  • TB_Drug_Cure_Rate_HIV: The daily probability of active TB infection being cured in an HIV+ person under drug treatment.
  • TB_Drug_Cure_Rate_MDR: The daily probability of active MDR infection being cured in an HIV+ or HIV- person under drug treatment.
  • TB_Drug_Inactivation_Rate_HIV: The daily probability of active drug-sensitive TB infection becoming latent in an HIV+ person, not currently on ART, under drug treatment.
  • TB_Drug_Inactivation_Rate_MDR: The daily probability of active MDR infection becoming latent in an HIV+ or HIV- person under drug treatment.
  • TB_Drug_Mortality_Rate_HIV: The daily probability of death for HIV+ individual with drug sensitive active infection under drug treatment.
  • TB_Drug_Mortality_Rate_MDR: The daily probability of death for individual with MDR active infection under drug treatment.
  • TB_Drug_Relapse_Rate_HIV: The daily probability that a drug-sensitive active infection in an HIV+ individual not currently on ART will inactivate but subsequently relapse under drug treatment.
  • TB_Drug_Relapse_Rate_MDR: The daily probability that an active MDR-TB infection (in HIV+ or HIV-) will inactivate but subsequently relapse under drug treatment.
  • TB_Drug_Resistance_Rate_HIV: The daily probability that an (HIV+) individual with drug-sensitive TB will acquire MDR-TB under drug treatment.

New campaign parameters

The following campaign classes are new for the Generic model and can be used in all other models:

IncidenceEventCoordinator (generic)

The IncidenceEventCoordinator coordinator class distributes interventions based on the number of events counted over a period of time.

MultiNodeInterventionDistributor (generic)

The MultiNodeInterventionDistributor intervention class distributes multiple node-level interventions when the distributor only allows specifying one intervention.

WaningEffectCombo (generic)

The WaningEffectCombo class is used within individual-level interventions and allows for specifiying a list of effects when the intervention only has one WaningEffect defined. These effects can be added or multiplied.

The following campaign classes are new for the Malaria model:

AdherentDrug (malaria)

The AdherentDrug class extends AntiMalarialDrug class and allows for incorporating different patterns of adherence to taking the drug.

BitingRisk (malaria, vector)

The BitingRisk class is used with individual-level interventions and allows for adjusting the relative risk of being bitten by a vector.

OutbreakIndividualMalaria (malaria)

The OutbreakIndividualMalaria class extends OutbreakIndividual class and allows for specifying a specific strain of infection.

The following campaign class is new for the TBHIV model:

TBHIVConfigurableTBdrug (tuberculosis)

The TBHIVConfigurableTBdrug class is an individual level intervention for TB treatment. The intervention applies TB drug effects to the progression, associated mortality, transmission and acquisition of TB infections in HIV positive and negative individuals.

Deprecated demographics parameters

ImmunityDistributionFlag, ImmunityDistribution1, and ImmunityDistribution2 were renamed to SusceptibilityDistributionFlag, SusceptibilityDistribution1, and SusceptibilityDistribution2. In previous versions of EMOD, the naming was counterintuitive to the functionality. For example, setting a value of 1 for the immunity indicated zero immunity/complete susceptibility. Now the parameters more accurately reflect that you are setting a susceptibility value. The functionality is the same.

Deprecated config parameters

Immunity_Transmission_Factor, Immunity_Mortality_Factor, and Immunity_Acquisition_Factor were renamed to Post_Infection_Transmission_Multiplier, Post_Infection_Mortality_Multiplier, and Post_Infection_Acquistion_Multiplier. The functionality is the same.

Deprecated campaign parameters

The TB_SIM simulation type has been deprecated and replaced with TBHIV_SIM, which does not include HIV transmission but adds the ability to model the effect of HIV coinfection on the spread of TB.

The following campaign classes, which have not yet been fully tested with the TBHIV simulation type, have been disabled:

  • HealthSeekingBehaviorUpdate
  • HealthSeekingBehaviorUpdateable
  • AntiTBPropDepDrug
  • SmearDiagnostic

In previous versions of EMOD, you could set the tendency of individuals to seek out health care using HealthSeekingBehaviorUpdateable and then update the value of the Tendency parameter using HealthSeekingBehaviorUpdate. Now, you use individual properties to update individuals when they receive the SimpleHealthSeekingBehavior intervention, as you would to control the flow of individuals through other intervention classes. For example, you could create an individual property with HSBold and HSBnew values in the demographics file and assign all individuals to HSBold. Then you could distribute the first SimpleHealthSeekingBehavior (with one Tendency value) to all HSBold individuals and use New_Property_Value to assign them to HSBnew after receiving the intervention. The next SimpleHealthSeekingBehavior intervention (with a different Tendency value) could be distributed, setting Disqualifying_Properties to HSBold and, if desired, using New_Property_Value to reassign HSBold to those individuals.

Similarly, AntiTBPropDepDrug was disabled and superseded with TBHIVConfigurableTBDrug, which allows for drug effects based on HIV status and where dependence on IndividualProperties is configured through Property_Restrictions. In addition, AntiTBPropDepDrub can be replaced with AntiTBDrug, also using Property_Restrictions and new property values to target particular individuals with drug interventions for tuberculosis without HIV coinfections.

SmearDiagnostic was disabled and can be replaced with DiagnosticTreatNeg. While SmearDiagnostic would only broadcast when an individual had a positive smear diagnostic, DiagnosticTreatNeg has the added benefit of broadcasting negative and default diagnostic test events.

TB_Drug_Clearance_Rate_HIV and TB_Drug_Clearance_Rate_MDR parameters have been renamed to TB_Drug_Cure_Rate_HIV and TB_Drug_Cure_Rate_MDR.

Error messages

When attempting to run an intervention using one of the disabled tuberculosis classes, such as AntiTBPropDepDrug, HealthSeekingBehaviorUpdate, HealthSeekingBehaviorUpdateable, and SmearDiagnostic, you will receive an error similar to the following: "00:00:01 [0] [I] [JsonConfigurable] Using the default value ( "Intervention_Name" : "HealthSeekingBehaviorUpdateable" ) for unspecified parameter.
00:00:02 [0] [E] [Eradication] 00:00:02 [0] [E] [Eradication]
GeneralConfigurationException:
Exception in SimulationEventContext.cpp at 242 in Kernel::SimulationEventContextHost::LoadCampaignFromFile.
Array out of bounds"

Note: These campaign classes have been disabled because they have not yet been fully tested with the TBHIV simulation type.

EMOD schema and simulation types

In the schema for the Simulation_Type parameter the enum values list additional simulation types which are not supported by EMOD. IDM-supported values include GENERIC_SIM, VECTOR_SIM, MALARIA_SIM, TBHIV_SIM, STI_SIM, and HIV_SIM.

For more information, see the complete EMOD documentation.

v2.13

Compare
Choose a tag to compare

V2.13

The EMOD v2.13 release includes many new features for all supported simulation types.

New configuration parameters

The following configuration parameters are new in the Generic model and can be used in all other models:

  • Custom_Reports_Filename: The name of the file containing custom report configuration parameters. Omitting this parameter or setting it to RunAllCustomReports will load all reporters found that are valid for the given simulation type. The file must be in JSON format.
  • Incubation_Period_Log_Mean: The mean of log normal for the incubation period distribution. Incubation_Period_Distribution must be set to LOG_NORMAL_DURATION.
  • Incubation_Period_Log_Width: The log width of log normal for the incubation period distribution. Incubation_Period_Distribution must be set to LOG_NORMAL_DURATION.
  • Infectivity_Exponential_Baseline: The scale factor applied to Base_Infectivity at the beginning of a simulation, before the infectivity begins to grow exponentially. Infectivity_Scale_Type must be set to EXPONENTIAL_FUNCTION_OF_TIME.
  • Infectivity_Exponential_Delay: The number of days before infectivity begins to ramp up exponentially. Infectivity_Scale_Type must be set to EXPONENTIAL_FUNCTION_OF_TIME.
  • Infectivity_Exponential_Rate: The daily rate of exponential growth to approach to full infectivity after the delay set by Infectivity_Exponential_Delay has passed. Infectivity_Scale_Type must be set to EXPONENTIAL_FUNCTION_OF_TIME.
  • Memory_Usage_Halting_Threshold_Working_Set_MB: The maximum size (in MB) of working set memory before the system throws an exception and halts.
  • Memory_Usage_Warning_Threshold_Working_Set_MB: The maximum size (in MB) of working set memory before memory usage statistics are written to the log regardless of log level.
  • Serialization_Time_Steps: The list of time steps after which to save the serialized state. 0 (zero) indicates the initial state before simulation, n indicates after the nth time step. By default, no serialized state is saved.
  • Serialized_Population_Filenames: Array of filenames with serialized population data. The number of filenames must match the number of cores used for the simulation. The file must be in .dtk format.
  • Serialized_Population_Path: The root path for the serialized population files.

The following configuration parameters are new in the Vector model (no new parameters specific to the Malaria model):

  • Cycle_Arrhenius_1: The temperature-independent scale factor in the Arrhenius equation for feeding cycle rate.
  • Cycle_Arrhenius_2: The temperature-dependent scale factor in the Arrhenius equation for feeding cycle rate.
  • Cycle_Arrhenius_Reduction_Factor: The scale factor applied to cycle duration (from oviposition to oviposition) to reduce the duration when primary follicles are at stage II rather than I in the case of newly emerged females. Temperature_Dependent_Feeding_Cycle must be set to ARRHENIUS_DEPENDENCE.
  • Drought_Egg_Hatch_Delay: Proportion of regular egg hatching that still occurs when habitat dries up. Enable_Drought_Egg_Hatch_Delay must be set to 1.
  • Egg_Arrhenius1: The temperature-independent scale factor in the Arrhenius equation for egg hatching rate.
  • Egg_Arrhenius2: The temperature-dependent scale factor in the Arrhenius equation for egg hatching rate.
  • Egg_Hatch_Density_Dependence The effect of larval density on egg hatching rate. Possible values are DENSITY_DEPENDENCE (Egg hatching is reduced when the habitat is nearing its carrying capacity) or NO_DENSITY_DEPENDENCE (Egg hatching is not dependent upon larval density).
  • Enable_Drought_Egg_Hatch_Delay: Controls whether or not eggs hatch at delayed rates, set by Drought_Egg_Hatch_Delay, when the habitat dries up completely.
  • Enable_Egg_Mortality: Controls whether or not to include a daily mortality rate on the egg population, which is independent of climatic factors.
  • Enable_Temperature_Dependent_Egg_Hatching: Controls whether or not temperature has an effect on egg hatching, defined by Egg_Arrhenius_1 and Egg_Arrhenius_2.
  • Enable_Vector_Aging: Controls whether or not vectors undergo senescence as they age.
  • Nighttime_Feeding_Fraction: The fraction of feeds on humans (for a specific mosquito species) that occur during the nighttime. Thus the fraction of feeds on humans that occur during the day equals 1 - (value of this parameter).
  • Temperature_Dependent_Feeding_Cycle: "The effect of temperature on the duration between blood feeds. Possible values are NO_TEMPERATURE_DEPENDENCE (No relation to temperature; days between feeds will be constant and specified by Days_Between_Feeds for each species), ARRHENIUS_DEPENDENCE (Use the Arrhenius equation with parameters Cycle_Arrhenius_1 and Cycle_Arrhenius_2), and BOUNDED_DEPENDENCE (Use an equation bounded at 10 days at 15C and use Days_Between_Feeds to set the duration at 30C).

The following configuration parameters are new in the STI model:

  • STI_Coinfection_Acquisition_Multiplier: The per-act HIV acquisition probability multiplier for individuals with the STI coinfection flag.
  • STI_Coinfection_Transmission_Multiplier: The per-act HIV transmission probability multiplier for individuals with the STI coinfection flag.

The following configuration parameters are new in the HIV model:

  • Heterogeneous_Infectiousness_LogNormal_Scale: Scale parameter of a log normal distribution that governs an infectiousness multiplier. The multiplier represents heterogeneity in infectivity and adjusts Base_Infectivity.
  • Report_HIV_ByAgeAndGender_Add_Relationships: Sets whether or not the ReportHIVByAgeAndGender.csv output file will contain data by relationship type on population currently in a relationship and ever in a relationship. A sum of those in two or more partnerships and a sum of the lifetime number of relationships in each bin will be included.
  • Report_HIV_ByAgeAndGender_Add_Transmitters: When set to to true (1), the "transmitters" column is included in the output report. For a given row, "Transmitters" indicates how many people that have transmitted the disease meet the specifications of that row.
  • Report_HIV_ByAgeAndGender_Collect_Age_Bins_Data: "This array of floats allows the user to define the age bins used to stratify the report by age. Each value defines the minimum value of that bin, while the next value defines the maximum value of the bin. The maximum number of age bins is 100.
  • Report_HIV_ByAgeAndGender_Collect_Gender_Data: Controls whether or not the report is stratified by gender; to enable gender stratification, set to true (1).
  • Report_HIV_ByAgeAndGender_Collect_Intervention_Data: Stratifies the population by adding a column of 0s and 1s depending on whether or not the person has the indicated intervention. This only works for interventions that remain with a person for a period of time, such as ART, VMMC, vaccine/PrEP, or a delay state in the cascade of care. You can name the intervention by adding a parameter Intervention_Name in the campaign file, and then give this parameter the same Intervention_Name. This allows you to have multiple types of vaccines, VMMCs, etc., but to only stratify on the type you want.
  • Report_HIV_ByAgeAndGender_Collect_On_Art_Data: Controls whether or not the output report is stratified by those people who are on ART and those who are not. Set to true (1) to enable stratification by ART status.

No new configuration parameters were added to the Airborne or TB models.

New demographics parameters

The following demographics parameters are new or updated in the Generic model and can be used in all other models:

  • NodeProperties: An array that contains parameters that add properties to nodes in a simulation. For example, you can define values for intervention status, risk, and other properties and assign values to different nodes.
  • Property: The individual or node property type for which you will assign arbitrary values to create groups. You can then move individuals or nodes into or out of different groups or target interventions to particular groups. The InterventionStatus property is new and allows you to tag individuals or nodes based on intervention status, so that receiving an intervention can affect how other interventions are distributed. Use with Disqualifying_Properties and New_Property_Value in the campaign file.

New campaign parameters

The following campaign parameters and intervention classes were added.

The addition of NodeProperties in the demographics file also necessitated the addition of Node_Property_Restrictions to control how interventions are distributed based on the property values assigned to each node.

The new property type InterventionStatus also necessitated the new campaign parameters Disqualifying_Properties and New_Property_Value to control how interventions are distributed based on the interventions already received. Disqualifying_Properties prevents an intervention from being distributed to individuals or nodes with certain property values. New_Property_Value updates the property value after they receive an intervention. For example, a household may be ineligible for clinical treatment for a length of time if they already received treatment during a drug campaign. These campaign parameters were previously only available for individuals in the HIV simulation type and were known as Abort_States and Valid_Cascade_States.

A new CommunityHealthWorkerEventCoordinator was added to set characteristics such as size of shipment, days between shipments, or maximum treatments distributed per day when interventions are distributed by community health workers.

Several new parameters were added to control effect of vaccines and disease exposure on immunity. For example, whether the effect of receiving more than one vaccine is multiplicative or additive or if there are immune boosting or priming effects.

Detailed descriptions for each of the new campaign parameters will be added shortly.

For more information, see the complete EMOD documentation.

v2.10

Compare
Choose a tag to compare

V2.10

The EMOD source v2.10 release includes new and updated Malaria configuration, demographic and intervention parameters. With this release, EMOD now uses Microsoft Visual Studio 2015, Boost 1.61.0 and SCons 2.5.0. See the Software Upgrades section for more information.

Malaria

Several habitat parameters in the Malaria model have been upgraded, creating more flexibility in the model and enabling the user to have more control over habitat customization. These changes allow the model to more accurately capture real-world habitat availability and how it affects different mosquito species.

  • LINEAR_SPLINE habitat type: This new option under Larval_Habitat_Type increases model customization by allowing the user to specify an arbitrary functional form (derived from data) for larval habitat availability throughout the year, instead of relying on climatological parameters such as rainfall or temperature. See Vector Species Parameters in the IDM documentation.
  • LarvalHabitatMultiplier by species: This new feature in demographics allows larval habitat availability to be modified independently for each species sharing a particular habitat type. Prior versions of EMOD applied the same modifier to all species within a shared habitat; this upgrade enables you to apply modifiers to individual species within a habitat. See NodeAttributes in the IDM documentation.
  • ScaleLarvalHabitat by species: This new intervention enables species-specific effects of habitat interventions within shared habitat types, such that habitat availability is modified on a per-species level. Look for ScaleLarvalHabitat in the Intervention Parameter Listing in the IDM documentation.

EMOD Software Upgrades

  • Microsoft Visual Studio: EMOD now uses Visual Studio 2015, and Visual Studio 2012 is no longer supported. The Visual Studio solution file in the EMOD source, EradicationKernel, has been updated for Visual Studio 2015. If you have custom reporter EMODules (DLLS) that were built using Visual Studio 2012, you will need to rebuild them with Visual Studio 2015; otherwise, your simulation will crash when it attempts to load the DLLs built by Visual Studio 2012.
  • Boost: EMOD now supports using Boost 1.61.0. If you continue to use Boost 1.51.0, you will get the following warning, "Unknown compiler version - please run the configure tests and report the results."
  • Environment Variables: To make it easier to use Boost and Python with Visual Studio, IDM paths have been created. These two paths, IDM_BOOST_PATH and IDM_PYTHON_PATH, need to be added to your environment variables by using either the setx command from a command line or the Windows System Properties panel.
  • SCons: EMOD was tested using SCons 2.5.0, as it supports Visual Studio 2015. If you do not add the new IDM environment variables for Boost and Python, you will need to modify the Boost and Python paths in the SConstruct file in the EMOD root directory.
  • Python: EMOD was tested with Python 2.7.11 and 2.7.12. If you are building the EMOD executable and have an earlier version of Python (e.g. 2.7.2), you will see the following warning message on some files, "c:\python27\include\pymath.h(22): warning C4273: 'round': inconsistent dll linkage." Upgrade to Python 2.7.11 or 2.7.12 to get rid of the warning message.

For more information, go to Prerequisite Software for the EMOD Source and Building the EMOD Executable.

v2.8

Compare
Choose a tag to compare

The EMOD source v2.8 release includes new and updated features as well as updates to the schema.

  • WaningEffectMapLinear and WaningEffectMapPiecewise capabilities have been added to provide more power and flexibility in defining how interventions can wane by allowing you to specify a detailed waning curve.
    • WaningEffectMapLinear allows you to specify a detailed waning curve using linear interpolation between points.
    • WaningEffectMapPiecewise allows you to specify a detailed waning curve using a piecewise/step function.
  • ControlledVaccine extends SimpleVaccine by adding controls to when an individual can and cannot be revaccinated.
  • ReferenceTrackingEventCoordinator allows you to define a particular coverage of an intervention that should be present in the population over time.
  • ReferenceTrackingEventCoordinatorHIV builds on the ReferenceTrackingEventCoordinator by adding an HIV specific state that individuals must have in order to get the intervention.
  • The schema for the config parameters has been updated to now only require config.json parameters if the dependent feature is enabled. For example, previous to v2.8 you had to include a parameter for Maternal_Transmission_Probability even if Enable_Maternal_Transmission was set to 0 (False/OFF). This update produces smaller config.json files making the configuration files easier to create, view, and edit.
  • For the list of breaking changes go to the IDM documentation.

v2.7.0

Compare
Choose a tag to compare

The EMOD source v2.7 release enhances the STI and HIV models with new and updated features.

  • Both multi-node and multi-core capabilities have been added to support spatial simulations including relationship migration.
  • Relationship types have been expanded:
    • A fourth relationship type, Commercial, has been added.
    • The maximum number of simultaneous partnerships for an individual is increased to 63.
  • The HIVByAgeAndGender report now captures the data for HIV status.
  • Many of the relationship-oriented parameters have been moved from the configuration file to the demographics file including concurrency, pair-forming, and extra-relationship rates. For the list of breaking changes go to the IDM documentation.

v2.6.0

Compare
Choose a tag to compare

With this release, you can now run EMOD on CentOS 7.1 within Azure, Microsoft's cloud computing service.

  • The EMOD binary has been tested and is supported on CentOS 7.1. EMOD has also been successfully built and run on Ubuntu, SUSE and Arch but has not been tested and is not supported. If you have issues building the EMOD binary, you can contact IDM at IDMSupport@idmod.org.
  • The PrepareLinuxEnvironment script is available on GitHub. It is an example of creating an environment for building EMOD and cloning the source code. The script was designed and tested to run on an Azure CentOS 7.1 virtual machine but you can modify it for other distributions.

EMOD on Windows continues to be supported on Windows 10 and Windows Server 2012 for local simulations, and Windows HPC Server 2012 for remote simulations. For information on the prerequisites needed to build EMOD, go to Prerequisite Software.

For information on building EMOD, go to Building the EMOD Executable.

Attached files (below):

Windows

  • Eradication.exe: The EMOD executable. Recommended for users who want to run simulations without building the executable from the sources.
  • Source code (zip): EMOD's source code, regression and tutorial scenario files, scripts and supporting files. Recommended for users who want to look at, but not modify, the source.

CentOS

  • Eradication: The EMOD binary for CentOS7.1. Recommended for users who want to run simulations without building the binary from the sources.
  • Source code (tar.gz): EMOD's source code, regression and tutorial scenario files, scripts and supporting files. Recommended for users who want to look at, but not modify, the source.
  • PrepareLinuxEnvironment.sh: An example of creating an environment for using EMOD. The script was designed and tested to run on an Azure CentOS 7 virtual machine.

v2.5.0

Compare
Choose a tag to compare

This release:

  • Supports disease-specific builds.
  • Extends the EMOD functionality with Python.
  • Simulates micro-spatial modeling at household level.
  • Models spatial migration of disease vectors with greater control.
  • Runs multicore (HPC) simulations for all disease types.

For information on building the EMOD executable, learning about the disease models, and configuring simulations, go to the IDM documentation.

You can clone the EMOD source or choose to download one of the following files:

  • Eradication.exe: The EMOD executable. Recommended for users who want to run simulations without building the executable from the sources.
  • Source code (zip, tar.gz): EMOD's source code, regression and tutorial scenario files, scripts and supporting files. Recommended for users who want to look at, but not modify, the source.

v2.0.0 STI and HIV

Compare
Choose a tag to compare

This is the first release of the STI and HIV models.

  • The STI contact network enables users to configure up to three relationship types with different durations, gender-specific levels of concurrency, age patterns of formation, and preference functions.
  • The HIV-specific implementation of the STI network model delves into co-factors and interventions affecting transmission, disease progression on and off therapy, and detailed and time-variable linkage and retention along the care continuum. For information and tutorials on these models, go to STI and HIV Overview.

You can clone the EMOD source or choose to download one of the following files:

  • Eradication.exe: The EMOD executable. Recommended for users who want to run simulations without building the executable from source.
  • Source code (zip, tar.gz): EMOD's source code, regression and tutorial scenario files, scripts and supporting files. Recommended for users to want to look at, but not modify, the source.