Configuration parameters

The parameters described in this reference section can be added to the JSON (JavaScript Object Notation) formatted configuration file to determine the core behavior of a simulation including the computing environment, functionality to enable, additional files to use, and characteristics of the disease being modeled. This file contains mostly a flat list of JSON key:value pairs.

For more information on the structure of these files, see Configuration file.

The tables below contain only parameters available when using the HIV simulation type. Some parameters may appear in multiple categories.

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 does not permit comments, but you can add “dummy” parameters to add contextual information to your files.

Disease progression

The following parameters determine aspects of HIV progression from the acute stage to AIDS.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Acute_Duration_In_Months

float

0

5

2.9

The time since infection, in months, over which the Acute_Stage_Infectivity_Multiplier is applied to coital acts occurring in that time period.

{
    "Acute_Duration_In_Months": 2.9
}

AIDS_Duration_In_Months

float

7

12

9

The length of time, in months, prior to an AIDS-related death over which the AIDS_Stage_Infectivity_Multiplier is applied.

{
    "AIDS_Duration_In_Months": 8
}

Drugs and treatments

The following parameters determine the efficacy of drugs and other treatments.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

ART_CD4_at_Initiation_Saturating_Reduction_in_Mortality

float

0

3.40E+38

350

The duration from ART enrollment to on-ART HIV-caused death increases with CD4 at ART initiation up to a threshold determined by this parameter value.

{
    "ART_CD4_at_Initiation_Saturating_Reduction_in_Mortality": 350
}

Maternal_Transmission_ART_Multiplier

float

0

1

0.1

The maternal transmission multiplier for on-ART mothers.

{
    "Maternal_Transmission_ART_Multiplier": 0.03
}

Report_HIV_ByAgeAndGender_Collect_Intervention_Data

array of strings

NA

NA

NA

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_Intervention_Data": [
        "ART_Intervention",
        "PrEP_Intervention"
    ]
}

Report_HIV_ByAgeAndGender_Collect_On_Art_Data

boolean

0

1

0

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.

{
    "Report_HIV_ByAgeAndGender_Collect_On_Art_Data": 1
}

Enable or disable features

The following parameters enable or disable features of the model, such as allowing births, deaths, or aging. Set to false (0) to disable; set to true (1) to enable.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Enable_Aging

boolean

0

1

1

Controls whether or not individuals in a population age during the simulation. Enable_Vital_Dynamics must be set to true (1).

{
    "Enable_Vital_Dynamics": 1,
    "Enable_Aging": 1
}

Enable_Air_Migration

boolean

0

1

0

Controls whether or not migration by air travel will occur. Migration_Model must be set to FIXED_RATE_MIGRATION.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Air_Migration": 1,
    "Air_Migration_Filename": "../inputs/air_migration.bin"
}

Enable_Birth

boolean

0

1

1

Controls whether or not individuals will be added to the simulation by birth. Enable_Vital_Dynamics must be set to true (1). If you want new individuals to have the same intervention coverage as existing individuals, you must add a BirthTriggeredIV to the campaign file.

{
    "Enable_Vital_Dynamics": 1,
    "Enable_Birth": 1
}

Enable_Climate_Stochasticity

boolean

0

1

0

Controls whether or not the climate has stochasticity. Climate_Model must be set to CLIMATE_CONSTANT or CLIMATE_BY_DATA. Set the variance using the parameters Air_Temperature_Variance, Land_Temperature_Variance, Enable_Rainfall_Stochasticity, and Relative_Humidity_Variance.

{
    "Climate_Model": "CLIMATE_BY_DATA",
    "Enable_Climate_Stochasticity": 1,
    "Air_Temperature_Variance": 2,
    "Enable_Rainfall_Stochasticity": 1,
    "Land_Temperature_Variance": 2,
    "Relative_Humidity_Variance": 0.05
}

Enable_Coital_Dilution

boolean

0

1

1

Controls whether or not coital dilution will occur.

{
    "Enable_Coital_Dilution": 1
}

Enable_Default_Reporting

boolean

0

1

1

Controls whether or not the default InsetChart.json report is created.

{
    "Enable_Default_Reporting": 1
}

Enable_Demographics_Birth

boolean

0

1

0

Controls whether or not newborns have identical or heterogeneous characteristics. Set to false (0) to give all newborns identical characteristics; set to true (1) to allow for heterogeneity in traits such as sickle-cell status. Enable_Birth must be set to true (1).

{
    "Enable_Birth": 1,
    "Enable_Demographics_Birth": 1
}

Enable_Demographics_Builtin

boolean

0

1

0

Controls whether or not built-in demographics for default geography will be used. Note that the built-in demographics feature does not represent a real geographical location and is mostly used for testing. Set to true (1) to define the initial population and number of nodes using Default_Geography_Initial_Node_Population and Default_Geography_Torus_Size. Set to false (0) to use demographics input files defined in Demographics_Filenames.

{
    "Enable_Demographics_Builtin": 1,
    "Default_Geography_Initial_Node_Population": 1000,
    "Default_Geography_Torus_Size": 3
}

Enable_Demographics_Reporting

boolean

0

1

1

Controls whether or not demographic summary data and age-binned reports are outputted to file.

{
    "Enable_Demographics_Reporting": 1
}

Enable_Disease_Mortality

boolean

0

1

1

Controls whether or not individuals are removed from the simulation due to disease deaths.

This parameter should always be set to 1 (true) for this simulation type.

{
    "Enable_Disease_Mortality": 1
}

Enable_Family_Migration

boolean

0

1

0

Controls whether or not all members of a household can migrate together when a MigrateFamily event occurs. All residents must be home before they can leave on the trip. Migration_Model must be set to FIXED_RATE_MIGRATION.

{
    "Enable_Migration": "FIXED_RATE_MIGRATION",
    "Enable_Family_Migration": 1,
    "Family_Migration_Filename": "../inputs/family_migration.bin"
}

Enable_Heterogeneous_Intranode_Transmission

boolean

0

1

0

Controls whether or not individuals experience heterogeneous disease transmission within a node. When set to true (1), individual property definitions and the \(\beta\) matrix must be specified in the demographics file (see NodeProperties and IndividualProperties parameters). The \(\beta\) values are multiplied with the \(\beta\) 0 value configured by Base_Infectivity.

This is used only in generic simulations, but must be set to false (0) for all other simulation types. Heterogeneous transmission for other diseases uses other mechanistic parameters included with the simulation type.

{
    "Enable_Heterogeneous_Intranode_Transmission": 1
}

Enable_Initial_Susceptibility_Distribution

boolean

0

1

0

Controls whether or not individuals in the population have immunity at the beginning of the simulation. If set to 0, individuals are not initialized with immunity but may acquire immunity. If set to 1, you must indicate the type of distribution to use for immunity in the configuration parameter Immunity_Initialization_Distribution_Type and the distribution values in the demographics file. Enable_Immunity must be set to 1.

{
    "Enable_Immunity": 1,
    "Enable_Initial_Susceptibility_Distribution": 1,
    "Immunity_Initialization_Distribution_Type": "DISTRIBUTION_SIMPLE"
}

Enable_Interventions

boolean

0

1

0

Controls whether or not campaign interventions will be used in the simulation. Set Campaign_Filename to the path of the file that contains the campaign interventions.

{
    "Enable_Interventions": 1,
    "Campaign_Filename": "campaign.json"
}

Enable_Local_Migration

boolean

0

1

0

Controls whether or not local migration (the diffusion of people in and out of nearby nodes by foot travel) occurs. Migration_Model must be set to FIXED_RATE_MIGRATION.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Local_Migration": 1,
    "Local_Migration_Filename": "../inputs/local_migration.bin"
}

Enable_Maternal_Infection_Transmission

boolean

0

1

0

Controls whether or not infectious mothers infect infants at birth. Enable_Birth must be set to 1 (true).

{
    "Enable_Birth": 1,
    "Enable_Maternal_Infection_Transmission": 1
}

Enable_Maternal_Protection

boolean

0

1

0

Controls whether or not mothers pass immunity on to their infants. Setting to 1 (true) enables maternal protection as defined by Maternal_Protection_Type. Enable_Birth must be set to 1 (true).

{
    "Enable_Maternal_Protection": 1,
    "Maternal_Protection_Type": "LINEAR_FRACTIONAL"
}

Enable_Migration_Heterogeneity

boolean

0

1

1

Controls whether or not migration rate is heterogeneous among individuals within each group that has a migration rate setting. Set to true (1) to apply a migration rate distribution (see NodeAttributes demographics parameters); set to false (0) to use the same migration rate applied to all individuals in the group. For example, if you are using a migration file that sets different migration rates for each age group in a node, you could apply an Gaussian distribution around a mean value in each age group or you could assign the same value to each individual in each age group.

Migration_Model must be set to FIXED_RATE_MIGRATION.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Migration_Heterogeneity": 1
}

Enable_Natural_Mortality

boolean

0

1

0

Controls whether or not individuals are removed from the simulation due to natural (non-disease) deaths. Enable_Vital_Dynamics must be set to 1 (true). Use Death_Rate_Dependence to set the natural death rate.

{
    "Enable_Natural_Mortality": 1,
    "Enable_Vital_Dynamics": 1
}

Enable_Property_Output

boolean

0

1

0

Controls whether or not to create property output reports, which detail groups as defined in IndividualProperties in the demographics file (see NodeProperties and IndividualProperties parameters). When there is more than one property type, the report will display the channel information for all combinations of the property type groups.

{
    "Enable_Property_Output": 1
}

Enable_Rainfall_Stochasticity

boolean

0

1

1

Controls whether or not there is stochastic variation in rainfall; set to true (1) for stochastic variation of rainfall that is drawn from an exponential distribution (with a mean value as the daily rainfall from the Climate_Model values CLIMATE_CONSTANT or CLIMATE_BY_DATA), or set to false (0) to disable rainfall stochasticity.

{
    "Enable_Climate_Stochasticity": 1,
    "Air_Temperature_Variance": 2,
    "Enable_Rainfall_Stochasticity": 1,
    "Land_Temperature_Variance": 2,
    "Relative_Humidity_Variance": 0.05
}

Enable_Regional_Migration

boolean

0

1

0

Controls whether or not there is migration by road or rail network into and out of nodes in the simulation. Migration_Model must be set to FIXED_RATE_MIGRATION.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Regional_Migration": 1,
    "Regional_Migration_Filename": "../inputs/regional_migration.bin"
}

Enable_Sea_Migration

boolean

0

1

0

Controls whether or not there is migration on ships into and out of coastal cities with seaports. Migration_Model must be set to FIXED_RATE_MIGRATION.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Sea_Migration": 1,
    "Sea_Migration_Filename": "../inputs/sea_migration.bin"
}

Enable_Spatial_Output

boolean

0

1

0

Controls whether or not spatial output reports are created. If set to true (1), spatial output reports include all channels listed in the parameter Spatial_Output_Channels.

Note

Spatial output files require significant processing time and disk space.

{
    "Enable_Spatial_Output": 1,
    "Spatial_Output_Channels": [
        "Prevalence",
        "New_Infections"
    ]
}

Enable_Susceptibility_Scaling

boolean

0

1

0

Controls whether or not susceptibility is scaled by time as defined by Susceptibility_Scaling_Type.

{
    "Enable_Susceptibility_Scaling": 1,
    "Susceptibility_Scaling_Type": "LOG_LINEAR_FUNCTION_OF_TIME"
}

Enable_Vital_Dynamics

boolean

0

1

1

Controls whether or not births and deaths occur in the simulation. Births and deaths must be individually enabled and set.

{
    "Enable_Vital_Dynamics": 1,
    "Enable_Birth": 1,
    "Death_Rate_Dependence": "NOT_INITIALIZED",
    "Base_Mortality": 0.002
}

General disease

The following parameters determine general disease characteristics.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Number_Basestrains

integer

1

10

1

The number of base strains in the simulation, such as antigenic variants. The specific base strain of an outbreak is specified using Antigen in the campaign file.

{
    "Number_Basestrains": 1
}

Number_Substrains

integer

1

16777216

256

The number of disease substrains for each base strain, such as genetic variants. The specific substrain of an outbreak is specified using Genome in the campaign file.

{
    "Number_Substrains": 256
}

Geography and environment

The following parameters determine characteristics of the geography and environment of the simulation. For example, how to use the temperature or rainfall data in the climate files and the size of the nodes in the simulation.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Air_Temperature_Filename

string

NA

NA

air_temp.json

The path to the input file that defines air temperature data measured two meters above ground. Climate_Model must be set to CLIMATE_BY_DATA. The file must be in .bin format.

{
    "Climate_Model": "CLIMATE_BY_DATA",
    "Air_Temperature_Filename": "Namawala_single_node_air_temperature_daily.bin"
}

Air_Temperature_Offset

float

-20

20

0

The linear shift of air temperature in degrees Celsius. Climate_Model must be set to CLIMATE_BY_DATA.

{
    "Air_Temperature_Offset": 1
}

Air_Temperature_Variance

float

0

5

2

The standard deviation (in degrees Celsius) for normally distributed noise applied to the daily air temperature values when Climate_Model is configured as CLIMATE_CONSTANT or CLIMATE_BY_DATA. Enable_Climate_Stochasticity must be set to true (1).

{
    "Enable_Climate_Stochasticity": 1,
    "Air_Temperature_Variance": 2
}

Base_Air_Temperature

float

-55

45

22

The air temperature, in degrees Celsius, where Climate_Model is set to CLIMATE_CONSTANT.

{
    "Climate_Model": "CLIMATE_CONSTANT",
    "Base_Air_Temperature": 30
}

Base_Land_Temperature

float

-55

60

26

The land temperature, in degrees Celsius, where Climate_Model is set to CLIMATE_CONSTANT.

{
    "Climate_Model": "CLIMATE_CONSTANT",
    "Base_Land_Temperature": 20
}

Base_Rainfall

float

0

150

10

The value of rainfall per day in millimeters when Climate_Model is set to CLIMATE_CONSTANT.

{
    "Climate_Model": "CLIMATE_CONSTANT",
    "Base_Rainfall": 20
}

Base_Relative_Humidity

float

0

1

0.75

The value of humidity where Climate_Model is set to CLIMATE_CONSTANT.

{
    "Base_Relative_Humidity": 0.1
}

Climate_Update_Resolution

enum

NA

NA

CLIMATE_UPDATE_YEAR

The resolution of data in climate files. Climate_Model must be set to CLIMATE_CONSTANT, CLIMATE_BY_DATA, or CLIMATE_KOPPEN. Possible values are:

CLIMATE_UPDATE_YEAR CLIMATE_UPDATE_MONTH CLIMATE_UPDATE_WEEK CLIMATE_UPDATE_DAY CLIMATE_UPDATE_HOUR

{
    "Climate_Update_Resolution": "CLIMATE_UPDATE_DAY"
}

Default_Geography_Initial_Node_Population

integer

0

1000000

1000

When using the built-in demographics for default geography, the initial number of individuals in each node. Note that the built-in demographics feature does not represent a real geographical location and is mostly used for testing. Enable_Demographics_Builtin must be set to true (1).

{
    "Enable_Demographics_Builtin": 1,
    "Default_Geography_Initial_Node_Population": 1000,
    "Default_Geography_Torus_Size": 3
}

Default_Geography_Torus_Size

integer

3

100

10

When using the built-in demographics for default geography, the square root of the number of nodes in the simulation. The simulation uses an N x N square grid of nodes with N specified by this parameter. If migration is enabled, the N x N nodes are assumed to be a torus and individuals can migrate from any node to all four adjacent nodes.

To enable migration, set Migration_Model to FIXED_RATE_MIGRATION. Built-in migration is a form of “local” migration where individuals only migrate to the adjacent nodes. You can use the x_Local_Migration parameter to control the rate of migration. The other migration parameters are ignored. Note that the built-in demographics feature does not represent a real geographical location and is mostly used for testing.

Enable_Demographics_Builtin must be set to true (1).

{
    "Enable_Demographics_Builtin": 1,
    "Default_Geography_Initial_Node_Population": 1000,
    "Default_Geography_Torus_Size": 3
}

Enable_Climate_Stochasticity

boolean

0

1

0

Controls whether or not the climate has stochasticity. Climate_Model must be set to CLIMATE_CONSTANT or CLIMATE_BY_DATA. Set the variance using the parameters Air_Temperature_Variance, Land_Temperature_Variance, Enable_Rainfall_Stochasticity, and Relative_Humidity_Variance.

{
    "Climate_Model": "CLIMATE_BY_DATA",
    "Enable_Climate_Stochasticity": 1,
    "Air_Temperature_Variance": 2,
    "Enable_Rainfall_Stochasticity": 1,
    "Land_Temperature_Variance": 2,
    "Relative_Humidity_Variance": 0.05
}

Enable_Rainfall_Stochasticity

boolean

0

1

1

Controls whether or not there is stochastic variation in rainfall; set to true (1) for stochastic variation of rainfall that is drawn from an exponential distribution (with a mean value as the daily rainfall from the Climate_Model values CLIMATE_CONSTANT or CLIMATE_BY_DATA), or set to false (0) to disable rainfall stochasticity.

{
    "Enable_Climate_Stochasticity": 1,
    "Air_Temperature_Variance": 2,
    "Enable_Rainfall_Stochasticity": 1,
    "Land_Temperature_Variance": 2,
    "Relative_Humidity_Variance": 0.05
}

Koppen_Filename

string

NA

NA

koppen_climate.json

The path to the input file used to specify Koppen climate classifications. Climate_Model must be set to CLIMATE_KOPPEN.

{
    "Koppen_Filename": "Mad_2_5arcminute_koppen.dat"
}

Land_Temperature_Filename

string

NA

NA

land_temp.json

The path of the input file defining temperature data measured at land surface; used only when Climate_Model is set to CLIMATE_BY_DATA. The file must be in .bin format.

{
    "Land_Temperature_Filename": "Namawala_single_node_land_temperature_daily.bin"
}

Land_Temperature_Offset

float

-20

20

0

The linear shift of land surface temperature in degrees Celsius; only used when Climate_Model is set to CLIMATE_BY_DATA.

{
    "Land_Temperature_Offset": 0
}

Land_Temperature_Variance

float

0

7

2

The standard deviation (in degrees Celsius) for normally distributed noise applied to the daily land temperature values when Climate_Model is configured to CLIMATE_CONSTANT or CLIMATE_BY_DATA; only used if the Enable_Climate_Stochasticity is set to true (1).

{
    "Land_Temperature_Variance": 1.5
}

Node_Grid_Size

float

0.00416

90

0.004167

The spatial resolution indicating the node grid size for a simulation in degrees.

{
    "Node_Grid_Size": 0.042
}

Rainfall_Filename

string

NA

NA

rainfall.json

The path of the input file which defines rainfall data. Climate_Model must be set to CLIMATE_BY_DATA. The file must be in .bin format.

{
    "Rainfall_Filename": "Namawala_single_node_rainfall_daily.bin"
}

Rainfall_Scale_Factor

float

0.1

10

1

The scale factor used in multiplying rainfall value(s). Climate_Model must be set to CLIMATE_BY_DATA.

{
    "Rainfall_Scale_Factor": 1
}

Relative_Humidity_Filename

string

NA

NA

rel_hum.json

The path of the input file which defines relative humidity data measured 2 meters above ground. Climate_Model must be set to CLIMATE_BY_DATA. The file must be in .bin format.

{
    "Relative_Humidity_Filename": "Namawala_single_node_relative_humidity_daily.bin"
}

Relative_Humidity_Scale_Factor

float

0.1

10

1

The scale factor used in multiplying relative humidity values. Climate_Model must be set to CLIMATE_BY_DATA.

{
    "Relative_Humidity_Scale_Factor": 1
}

Relative_Humidity_Variance

float

0

0.12

0.05

The standard deviation (in percentage) for normally distributed noise applied to the daily relative humidity values when Climate_Model is configured as CLIMATE_CONSTANT or CLIMATE_BY_DATA. Enable_Climate_Stochasticity must be set to true (1).

{
    "Relative_Humidity_Variance": 0.05
}

Immunity

The following parameters determine the immune system response for the disease being modeled, including waning immunity after an infection clears.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Acquisition_Blocking_Immunity_Decay_Rate

float

0

1

0.001

The rate at which acquisition-blocking immunity decays after the initial period indicated by the base acquisition-blocking immunity offset. Only used when Enable_Immunity and Enable_Immune_Decay parameters are set to true (1).

{
    "Acquisition_Blocking_Immunity_Decay_Rate": 0.05
}

Acquisition_Blocking_Immunity_Duration_Before_Decay

float

0

45000

0

The number of days after infection until acquisition-blocking immunity begins to decay. Enable_Immunity and Enable_Immune_Decay must be set to true (1).

{
    "Acquisition_Blocking_Immunity_Duration_Before_Decay": 10
}

Enable_Initial_Susceptibility_Distribution

boolean

0

1

0

Controls whether or not individuals in the population have immunity at the beginning of the simulation. If set to 0, individuals are not initialized with immunity but may acquire immunity. If set to 1, you must indicate the type of distribution to use for immunity in the configuration parameter Immunity_Initialization_Distribution_Type and the distribution values in the demographics file. Enable_Immunity must be set to 1.

{
    "Enable_Immunity": 1,
    "Enable_Initial_Susceptibility_Distribution": 1,
    "Immunity_Initialization_Distribution_Type": "DISTRIBUTION_SIMPLE"
}

Enable_Maternal_Protection

boolean

0

1

0

Controls whether or not mothers pass immunity on to their infants. Setting to 1 (true) enables maternal protection as defined by Maternal_Protection_Type. Enable_Birth must be set to 1 (true).

{
    "Enable_Maternal_Protection": 1,
    "Maternal_Protection_Type": "LINEAR_FRACTIONAL"
}

Immune_Threshold_For_Downsampling

float

0

1

0

The threshold on acquisition immunity at which to apply immunity-dependent downsampling; individuals who are more immune than this this threshold are downsampled. A value of 1 is equivalent to full susceptibility and 0 is equivalent to full immunity. If the acquisition immunity modifier is larger than the threshold, no downsampling occurs. Individual_Sampling_Type must set to ADAPTED_SAMPLING_BY_IMMUNE_STATE.

{
    "Relative_Sample_Rate_Immune": 0.1,
    "Immune_Threshold_For_Downsampling": 0.5,
    "Individual_Sampling_Type": "ADAPTED_SAMPLING_BY_IMMUNE_STATE"
}

Maternal_Linear_Slope

float

0.0001

1

0.01

Slope parameter describing the rate of waning for maternal protection, must be positive. The per-day increase in susceptibility. Maternal_Protection_Type must be set to LINEAR_FRACTIONAL or LINEAR_BINARY.

{
    "Maternal_Protection_Type": "LINEAR_FRACTIONAL",
    "Maternal_Linear_SusZero": 0.45,
    "Maternal_Linear_Slope": 0.02
}

Maternal_Linear_SusZero

float

0

1

0.2

The initial level of maternal protection at age 0, given as susceptibility. A value of 0.0 implies total protection, a value of 1.0 implies no protection. Maternal_Protection_Type must be set to LINEAR_FRACTIONAL or LINEAR_BINARY.

{
    "Maternal_Protection_Type": "LINEAR_FRACTIONAL",
    "Maternal_Linear_SusZero": 0.45,
    "Maternal_Linear_Slope": 0.02
}

Maternal_Protection_Type

enum

NA

NA

NONE

The type of maternal protection afforded to infants. Enable_Maternal_Protection must be set to 1 (true). Possible values are:

NONE

No immune protection is passed on to infants.

LINEAR

Susceptibility is a function of age and governed by a linear equation. Susceptibility = Maternal_Linear_Slope * age + Maternal_Linear_SusZero

SIGMOID

Susceptibility is a function of age and governed by a sigmoidal equation. Susceptibility = Maternal_Sigmoid_SusInit + (1.0 - Maternal_Sigmoid_SusInit) / * (1.0 + EXP(( Maternal_Sigmoid_HalfMaxAge - age) / Maternal_Sigmoid_SteepFac))

You must set Susceptibility_Type to determine if susceptibility at a particular age is interpreted as a fractional value or the probability of complete immunity or susceptibility.

{
    "Enable_Maternal_Protection": 1,
    "Maternal_Protection_Type": "LINEAR_FRACTIONAL"
}

Maternal_Sigmoid_HalfMaxAge

float

-270

3650

180

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_Protection_Type": "SIGMOID_BINARY",
    "Maternal_Sigmoid_SteepFac": 30,
    "Maternal_Sigmoid_HalfMaxAge": 365,
    "Maternal_Sigmoid_SusInit": 0.0002
}

Maternal_Sigmoid_SteepFac

float

0.1

1000

30

The steepness factor describing the rate of waning for maternal protection, must be positive. Small values imply rapid waning.**Maternal_Protection_Type** must be set to SIGMOID_FRACTIONAL or SIGMOID_BINARY.

{
    "Maternal_Protection_Type": "SIGMOID_BINARY",
    "Maternal_Sigmoid_SteepFac": 30,
    "Maternal_Sigmoid_HalfMaxAge": 365,
    "Maternal_Sigmoid_SusInit": 0.0002
}

Maternal_Sigmoid_SusInit

float

0

1

0

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. Maternal_Protection_Type must be set to SIGMOID_FRACTIONAL or SIGMOID_BINARY.

{
    "Maternal_Protection_Type": "SIGMOID_BINARY",
    "Maternal_Sigmoid_SteepFac": 30,
    "Maternal_Sigmoid_HalfMaxAge": 365,
    "Maternal_Sigmoid_SusInit": 0.0002
}

Mortality_Blocking_Immunity_Decay_Rate

float

0

1

0.001

The rate at which mortality-blocking immunity decays after the mortality-blocking immunity offset period. Enable_Immune_Decay must be set to 1.

{
    "Mortality_Blocking_Immunity_Decay_Rate": 0.1
}

Mortality_Blocking_Immunity_Duration_Before_Decay

float

0

45000

0

The number of days after infection until mortality-blocking immunity begins to decay. Enable_Immunity and Enable_Immune_Decay must be set to 1.

{
    "Mortality_Blocking_Immunity_Duration_Before_Decay": 270
}

Post_Infection_Acquisition_Multiplier

float

0

1

0

The multiplicative reduction in the probability of reacquiring disease. At the time of recovery, the immunity against acquisition is multiplied by Acquisition_Blocking_Immunity_Decay_Rate x (1 - Post_Infection_Acquisition_Multiplier). Enable_Immunity must be set to 1 (true).

{
    "Enable_Immunity": 1,
    "Enable_Immune_Decay": 1,
    "Post_Infection_Acquisition_Multiplier": 0.9
}

Post_Infection_Mortality_Multiplier

float

0

1

0

The multiplicative reduction in the probability of dying from infection after getting reinfected. At the time of recovery, the immunity against mortality is multiplied by Mortality_Blocking_Immunity_Decay_Rate x (1 - Post_Infection_Mortality_Multiplier). Enable_Immunity must be set to 1 (true).

{
    "Enable_Immunity": 1,
    "Enable_Immune_Decay": 1,
    "Post_Infection_Mortality_Multiplier": 0.5
}

Post_Infection_Transmission_Multiplier

float

0

1

0

The multiplicative reduction in the probability of transmitting infection after getting reinfected. At the time of recovery, the immunity against transmission is multiplied by Transmission_Blocking_Immunity_Decay_Rate x (1 - Post_Infection_Transmission_Multiplier). Enable_Immunity must be set to 1 (true).

{
    "Enable_Immunity": 1,
    "Enable_Immunity_Decay": 1,
    "Post_Infection_Transmission_Multiplier": 0.9
}

Susceptibility_Initialization_Distribution_Type

enum

NA

NA

DISTRIBUTION_OFF

The method for initializing the susceptibility distribution in the simulated population. Enable_Initial_Susceptibility_Distribution must be set to 1 (true). Possible values are:

DISTRIBUTION_OFF

All individuals default to no susceptibility.

DISTRIBUTION_SIMPLE

Individual susceptibilities are drawn from a distribution whose functional form and parameters are specified in the demographics file in IndividualAttributes using SusceptibilityDistributionFlag, SusceptibilityDistribution1, and SusceptibilityDistribution2 (see Simple distributions parameters).

DISTRIBUTION_COMPLEX

Individual susceptibilities are drawn from an age-dependent piecewise linear function for each specific antibody in the demographics file (see Complex distributions parameters).

{
    "Enable_Immunity": 1,
    "Enable_Initial_Susceptibility_Distribution": 1,
    "Susceptibility_Initialization_Distribution_Type": "DISTRIBUTION_COMPLEX"
}

Transmission_Blocking_Immunity_Decay_Rate

float

0

1000

0.001

The rate at which transmission-blocking immunity decays after the base transmission-blocking immunity offset period. Used only when Enable_Immunity and Enable_Immune_Decay parameters are set to true (1).

{
    "Transmission_Blocking_Immunity_Decay_Rate": 0.01
}

Transmission_Blocking_Immunity_Duration_Before_Decay

float

0

45000

0

The number of days after infection until transmission-blocking immunity begins to decay. Only used when Enable_Immunity and Enable_Immune_Decay parameters are set to true (1).

{
    "Transmission_Blocking_Immunity_Duration_Before_Decay": 90
}

Incubation

The following parameters determine the characteristics of the incubation period.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Incubation_Period_Constant

float

0

3.40282E+38

6

The incubation period to use for all individuals.

{
    "Incubation_Period_Distribution": "CONSTANT_DISTRIBUTION",
    "Incubation_Period_Constant": 8
}

Incubation_Period_Distribution

enum

NA

NA

NOT_INITIALIZED

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.

Possible values are:

NOT_INITIALIZED

No distribution set.

CONSTANT_DISTRIBUTION

Use the same value for each individual. Set Incubation_Period_Constant.

UNIFORM_DISTRIBUTION

Use a uniform distribution with a given minimum and maximum. Set Incubation_Period_Max and Incubation_Period_Min.

GAUSSIAN_DISTRIBUTION

The distribution is Gaussian (or normal). Set Incubation_Period_Gaussian_Mean and Incubation_Period_Gaussian_Std_Dev.

EXPONENTIAL_DISTRIBUTION

The distribution is exponential with a given mean. Set Incubation_Period_Exponential.

WEIBULL_DISTRIBUTION

Use a Weibull distribution with a given shape and scale. Set Incubation_Period_Kappa and Incubation_Period_Lambda.

LOG_NORMAL_DISTRIBUTION

Use a log-normal distribution with a given mean and standard deviation of the natural log. Set Incubation_Period_Log_Normal_Mu and Incubation_Period_Log_Normal_Sigma.

POISSON_DISTRIBUTION

Use a Poisson distribution with a given mean. Set Incubation_Period_Poisson_Mean.

DUAL_CONSTANT_DISTRIBUTION

Use a distribution where some individuals are set to a value of zero and the rest to a given value. Set Incubation_Period_Proportion_0 and Peak_2_Value. This distribution does not use the parameters set for CONSTANT_DISTRIBUTION.

DUAL_EXPONENTIAL_DISTRIBUTION

Use two exponential distributions with given means. Set Incubation_Period_Mean_1, Incubation_Period_Mean_2, and Incubation_Period_Proportion_1. This distribution does not use the parameters set for DUAL_EXPONENTIAL_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "GAUSSIAN_DISTRIBUTION",
    "Incubation_Period_Gaussian_Mean": 8,
    "Incubation_Period_Gaussian_Std_Dev": 1.5
}

Incubation_Period_Exponential

float

0

3.40282E+38

6

The mean incubation period when Incubation_Period_Distribution is set to EXPONENTIAL_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "EXPONENTIAL_DISTRIBUTION",
    "Incubation_Period_Exponential": 4.25
}

Incubation_Period_Gaussian_Mean

float

0

3.40282E+38

6

The mean of the incubation period when Incubation_Period_Distribution is set to GAUSSIAN_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "GAUSSIAN_DISTRIBUTION",
    "Incubation_Period_Gaussian_Mean": 8,
    "Incubation_Period_Gaussian_Std_Dev": 1.5
}

Incubation_Period_Gaussian_Std_Dev

float

1.17549E-38

3.40282E+38

1

The standard deviation of the incubation period when Incubation_Period_Distribution is set to GAUSSIAN_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "GAUSSIAN_DISTRIBUTION",
    "Incubation_Period_Gaussian_Mean": 8,
    "Incubation_Period_Gaussian_Std_Dev": 1.5
}

Incubation_Period_Kappa

float

1.17549E-38

3.40282E+38

1

The shape value for the incubation period when Incubation_Period_Distribution is set to WEIBULL_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "WEIBULL_DISTRIBUTION",
    "Incubation_Period_Kappa": 0.9,
    "Incubation_Period_Lambda": 1.5
}

Incubation_Period_Lambda

float

1.17549E-38

3.40282E+38

1

The scale value for the incubation period when Incubation_Period_Distribution is set to WEIBULL_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "WEIBULL_DISTRIBUTION",
    "Incubation_Period_Kappa": 0.9,
    "Incubation_Period_Lambda": 1.5
}

Incubation_Period_Log_Normal_Mu

float

1.17549E-38

3.40282E+38

6

The mean of the natural log of the incubation period when Incubation_Period_Distribution is set to LOG_NORMAL_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "LOG_NORMAL_DISTRIBUTION",
    "Incubation_Period_Log_Normal_Mu": 4,
    "Incubation_Period_Log_Normal_Sigma": 1
}

Incubation_Period_Log_Normal_Sigma

float

1.17549E-38

3.40282E+38

1

The standard deviation of the natural log of the incubation period when Incubation_Period_Distribution is set to LOG_NORMAL_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "LOG_NORMAL_DISTRIBUTION",
    "Incubation_Period_Log_Normal_Mu": 4,
    "Incubation_Period_Log_Normal_Sigma": 1
}

Incubation_Period_Max

float

0

3.40282E+38

1

The maximum incubation period when Incubation_Period_Distribution is set to UNIFORM_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "UNIFORM_DISTRIBUTION",
    "Incubation_Period_Min": 2,
    "Incubation_Period_Max": 7
}

Incubation_Period_Mean_1

float

1.17549E-38

3.40282E+38

1

The mean of the first exponential distribution when Incubation_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
    "Incubation_Period_Mean_1": 4,
    "Incubation_Period_Mean_2": 12,
    "Incubation_Period_Proportion_1": 0.2
}

Incubation_Period_Mean_2

float

1.17549E-38

3.40282E+38

1

The mean of the second exponential distribution when Incubation_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
    "Incubation_Period_Mean_1": 4,
    "Incubation_Period_Mean_2": 12,
    "Incubation_Period_Proportion_1": 0.2
}

Incubation_Period_Min

float

0

3.40282E+38

0

The minimum incubation period when Incubation_Period_Distribution is set to UNIFORM_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "UNIFORM_DISTRIBUTION",
    "Incubation_Period_Min": 2,
    "Incubation_Period_Max": 7
}

Incubation_Period_Peak_2_Value

float

0

3.40282E+38

1

The incubation period value to assign to the remaining individuals when Incubation_Period_Distribution is set to DUAL_CONSTANT_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "DUAL_CONSTANT_DISTRIBUTION",
    "Incubation_Period_Proportion_0": 0.25,
    "Incubation_Period_Peak_2_Value": 5
}

Incubation_Period_Poisson_Mean

float

0

3.40282E+38

6

The mean of the incubation period when Incubation_Period_Distribution is set to POISSON_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "POISSON_DISTRIBUTION",
    "Incubation_Period_Poisson_Mean": 5
}

Incubation_Period_Proportion_0

float

0

1

1

The proportion of individuals to assign a value of zero days incubation when Incubation_Period_Distribution is set to DUAL_CONSTANT_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "DUAL_CONSTANT_DISTRIBUTION",
    "Incubation_Period_Proportion_0": 0.25,
    "Incubation_Period_Peak_2_Value": 5
}

Incubation_Period_Proportion_1

float

0

1

1

The proportion of individuals in the first exponential distribution when Incubation_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.

{
    "Incubation_Period_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
    "Incubation_Period_Mean_1": 4,
    "Incubation_Period_Mean_2": 12,
    "Incubation_Period_Proportion_1": 0.2
}

Symptomatic_Infectious_Offset

float

-3.40282e+38

3.40282e+38

3.40282e+38

Amount of time, in days, after the infectious period starts that symptoms appear. Negative values imply an individual is symptomatic before infectious. If this offset is greater than the infectious duration, the infection will not be symptomatic. For example, if Incubation_Period_Constant is set to 10 and Symptomatic_Infectious_Offset is set to 4, then an infected person would become symptomatic 14 days after transmission.

{
    "Infectious_Period_Distribution": "CONSTANT_DISTRIBUTION",
    "Symptomatic_Infectious_Offset": 4,
    "Incubation_Period_Constant": 10
}

Infectivity and transmission

The following parameters determine aspects of infectivity and disease transmission. For example, how infectious individuals are and the length of time for which they remain infectious, whether the disease can be maternally transmitted, and how population density affects infectivity.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Acute_Duration_In_Months

float

0

5

2.9

The time since infection, in months, over which the Acute_Stage_Infectivity_Multiplier is applied to coital acts occurring in that time period.

{
    "Acute_Duration_In_Months": 2.9
}

Acute_Stage_Infectivity_Multiplier

float

1

100

26

The multiplier acting on Base_Infectivity to determine the per-act transmission probability of an HIV+ individual during the acute stage.

{
    "Acute_Stage_Infectivity_Multiplier": 3
}

AIDS_Stage_Infectivity_Multiplier

float

1

100

10

The multiplier acting on Base_Infectivity to determine the per-act transmission probability of an HIV+ individual during the AIDS stage.

{
    "AIDS_Stage_Infectivity_Multiplier": 8
}

ART_Viral_Suppression_Multiplier

float

0

1

0.08

Multiplier acting on Base_Infectivity to determine the per-act transmission probability of a virally suppressed HIV+ individual.

{
    "ART_Viral_Suppression_Multiplier": 0.3
}

Base_Infectivity

float

0

1000

0.3

The base infectiousness of individuals before accounting for transmission-blocking effects of acquired immunity and/or campaign interventions.

For STI or HIV simulations, this is the probability of transmission when none of the transmission multipliers apply to a particular coital act (or when all multipliers are set to 1).

{
    "Base_Infectivity": 0.5
}

CD4_At_Death_LogLogistic_Heterogeneity

float

0

100

0

The inverse shape parameter of a Weibull distribution that represents the at-death CD4 cell count.

{
    "CD4_At_Death_LogLogistic_Heterogeneity": 0.7
}

Condom_Transmission_Blocking_Probability

float

0

1

0.9

The per-act multiplier of the transmission probability when a condom is used.

{
    "Condom_Transmission_Blocking_Probability": 0.99
}

Enable_Heterogeneous_Intranode_Transmission

boolean

0

1

0

Controls whether or not individuals experience heterogeneous disease transmission within a node. When set to true (1), individual property definitions and the \(\beta\) matrix must be specified in the demographics file (see NodeProperties and IndividualProperties parameters). The \(\beta\) values are multiplied with the \(\beta\) 0 value configured by Base_Infectivity.

This is used only in generic simulations, but must be set to false (0) for all other simulation types. Heterogeneous transmission for other diseases uses other mechanistic parameters included with the simulation type.

{
    "Enable_Heterogeneous_Intranode_Transmission": 1
}

Enable_Maternal_Infection_Transmission

boolean

0

1

0

Controls whether or not infectious mothers infect infants at birth. Enable_Birth must be set to 1 (true).

{
    "Enable_Birth": 1,
    "Enable_Maternal_Infection_Transmission": 1
}

Enable_Skipping

boolean

0

1

0

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. Infectivity_Scale_Type must be set to CONSTANT_INFECTIVITY.

{
    "Exposure_Skipping": 1
}

Enable_Susceptibility_Scaling

boolean

0

1

0

Controls whether or not susceptibility is scaled by time as defined by Susceptibility_Scaling_Type.

{
    "Enable_Susceptibility_Scaling": 1,
    "Susceptibility_Scaling_Type": "LOG_LINEAR_FUNCTION_OF_TIME"
}

Enable_Termination_On_Zero_Total_Infectivity

boolean

0

1

0

Controls whether or not the simulation should be ended when total infectivity falls to zero. Supported only in single-node simulations.

{
    "Enable_Termination_On_Zero_Total_Infectivity": 1,
    "Minimum_End_Time": 3650
}

Heterogeneous_Infectiousness_LogNormal_Scale

float

0

10

0

Scale parameter of a log normal distribution that governs an infectiousness multiplier. The multiplier represents heterogeneity in infectivity and adjusts Base_Infectivity.

{
    "Heterogeneous_Infectiousness_LogNormal_Scale": 1
}

Infection_Updates_Per_Timestep

integer

0

144

1

The number of infection updates executed during each timestep; note that a timestep defaults to one day.

{
    "Infection_Updates_Per_Timestep": 1
}

Infectious_Period_Constant

float

0

3.40282E+38

6

The infectious period to use for all individuals.

{
    "Infectious_Period_Distribution": "CONSTANT_DISTRIBUTION",
    "Infectious_Period_Constant": 8
}

Infectious_Period_Distribution

enum

NA

NA

NOT_INITIALIZED

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.

Possible values are:

NOT_INITIALIZED

No distribution set.

CONSTANT_DISTRIBUTION

Use the same value for each individual. Set Infectious_Period_Constant.

UNIFORM_DISTRIBUTION

Use a uniform distribution with a given minimum and maximum. Set Infectious_Period_Max and Infectious_Period_Min.

GAUSSIAN_DISTRIBUTION

The distribution is Gaussian (or normal). Set Infectious_Period_Gaussian_Mean and Infectious_Period_Gaussian_Std_Dev.

EXPONENTIAL_DISTRIBUTION

The distribution is exponential with a given mean. Set Infectious_Period_Exponential.

WEIBULL_DISTRIBUTION

Use a Weibull distribution with a given shape and scale. Set Infectious_Period_Kappa and Infectious_Period_Lambda.

LOG_NORMAL_DISTRIBUTION

Use a log-normal distribution with a given mean and standard deviation of the natural log. Set Infectious_Period_Log_Normal_Mu and Infectious_Period_Log_Normal_Sigma.

POISSON_DISTRIBUTION

Use a Poisson distribution with a given mean. Set Infectious_Period_Poisson_Mean.

DUAL_CONSTANT_DISTRIBUTION

Use a distribution where some individuals are set to a value of zero and the rest to a given value. Set Infectious_Period_Proportion_0 and Peak_2_Value. This distribution does not use the parameters set for CONSTANT_DISTRIBUTION.

DUAL_EXPONENTIAL_DISTRIBUTION

Use two exponential distributions with given means. Set Infectious_Period_Mean_1, Infectious_Period_Mean_2, and Infectious_Period_Proportion_1. This distribution does not use the parameters set for EXPONENTIAL_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "GAUSSIAN_DISTRIBUTION",
    "Infectious_Period_Gaussian_Mean": 4,
    "Infectious_Period_Gaussian_Std_Dev": 1
}

Infectious_Period_Exponential

float

0

3.40282E+38

6

The mean infectious period when Infectious_Period_Distribution is set to EXPONENTIAL_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "EXPONENTIAL_DISTRIBUTION",
    "Infectious_Period_Exponential": 4.25
}

Infectious_Period_Gaussian_Mean

float

0

3.40282E+38

6

The mean of the infectious period when Infectious_Period_Distribution is set to GAUSSIAN_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "GAUSSIAN_DISTRIBUTION",
    "Infectious_Period_Gaussian_Mean": 4,
    "Infectious_Period_Gaussian_Std_Dev": 1
}

Infectious_Period_Gaussian_Std_Dev

float

1.17549E-38

3.40282E+38

1

The standard deviation of the infectious period when Infectious_Period_Distribution is set to GAUSSIAN_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "GAUSSIAN_DISTRIBUTION",
    "Infectious_Period_Gaussian_Mean": 4,
    "Infectious_Period_Gaussian_Std_Dev": 1
}

Infectious_Period_Kappa

float

1.17549E-38

3.40282E+38

1

The shape value for the infectious period when Infectious_Period_Distribution is set to WEIBULL_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "WEIBULL_DISTRIBUTION",
    "Infectious_Period_Kappa": 0.9,
    "Infectious_Period_Lambda": 1.5
}

Infectious_Period_Lambda

float

1.17549E-38

3.40282E+38

1

The scale value for the infectious period when Infectious_Period_Distribution is set to WEIBULL_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "WEIBULL_DISTRIBUTION",
    "Infectious_Period_Kappa": 0.9,
    "Infectious_Period_Lambda": 1.5
}

Infectious_Period_Log_Normal_Mu

float

1.17549E-38

3.40282E+38

6

The mean of the natural log of the infectious period when Infectious_Period_Distribution is set to LOG_NORMAL_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "LOG_NORMAL_DISTRIBUTION",
    "Infectious_Period_Log_Normal_Mu": 9,
    "Infectious_Period_Log_Normal_Sigma": 2
}

Infectious_Period_Log_Normal_Sigma

float

1.17549E-38

3.40282E+38

1

The standard deviation of the natural log of the infectious period when Infectious_Period_Distribution is set to LOG_NORMAL_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "LOG_NORMAL_DISTRIBUTION",
    "Infectious_Period_Log_Normal_Mu": 9,
    "Infectious_Period_Log_Normal_Sigma": 2
}

Infectious_Period_Max

float

0

3.40282E+38

1

The maximum infectious period when Infectious_Period_Distribution is set to UNIFORM_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "UNIFORM_DISTRIBUTION",
    "Infectious_Period_Min": 2,
    "Infectious_Period_Max": 7
}

Infectious_Period_Mean_1

float

1.17549E-38

3.4E+38

1

The mean of the first exponential distribution when Infectious_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
    "Infectious_Period_Mean_1": 4,
    "Infectious_Period_Mean_2": 12,
    "Infectious_Period_Proportion_1": 0.2
}

Infectious_Period_Mean_2

float

1.17549E-38

3.40282E+38

1

The mean of the second exponential distribution when Infectious_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
    "Infectious_Period_Mean_1": 4,
    "Infectious_Period_Mean_2": 12,
    "Infectious_Period_Proportion_1": 0.2
}

Infectious_Period_Min

float

0

3.40282E+38

0

The minimum infectious period when Infectious_Period_Distribution is set to UNIFORM_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "UNIFORM_DISTRIBUTION",
    "Infectious_Period_Min": 2,
    "Infectious_Period_Max": 7
}

Infectious_Period_Peak_2_Value

float

0

3.40282E+38

1

The infectious period value to assign to the remaining individuals when Infectious_Period_Distribution is set to DUAL_CONSTANT_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "DUAL_CONSTANT_DISTRIBUTION",
    "Infectious_Period_Proportion_0": 0.25,
    "Infectious_Period_Peak_2_Value": 5
}

Infectious_Period_Poisson_Mean

float

0

3.40282E+38

6

The mean of the infectious period with Infectious_Period_Distribution is set to POISSON_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "POISSON_DISTRIBUTION",
    "Infectious_Period_Poisson_Mean": 5
}

Infectious_Period_Proportion_0

float

0

1

1

The proportion of individuals to assign a value of zero days infectiousness when Infectious_Period_Distribution is set to DUAL_CONSTANT_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "DUAL_CONSTANT_DISTRIBUTION",
    "Infectious_Period_Proportion_0": 0.25,
    "Infectious_Period_Peak_2_Value": 5
}

Infectious_Period_Proportion_1

float

0

1

1

The proportion of individuals in the first exponential distribution when Infectious_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.

{
    "Infectious_Period_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
    "Infectious_Period_Mean_1": 4,
    "Infectious_Period_Mean_2": 12,
    "Infectious_Period_Proportion_1": 0.2
}

Infectivity_Boxcar_Forcing_Amplitude

float

0

3.40E+38

0

The fractional increase in R0 during the high-infectivity season when Infectivity_Scale_Type is equal to ANNUAL_BOXCAR_FUNCTION.

{
    "Infectivity_Boxcar_Forcing_Amplitude": 0.25,
    "Infectivity_Boxcar_Forcing_End_Time": 270,
    "Infectivity_Boxcar_Forcing_Start_Time": 90,
    "Infectivity_Scale_Type": "ANNUAL_BOXCAR_FUNCTION"
}

Infectivity_Boxcar_Forcing_End_Time

float

0

365

0

The end of the high-infectivity season when Infectivity_Scale_Type is equal to ANNUAL_BOXCAR_FUNCTION.

{
    "Infectivity_Boxcar_Forcing_Amplitude": 0.25,
    "Infectivity_Boxcar_Forcing_End_Time": 270,
    "Infectivity_Boxcar_Forcing_Start_Time": 90,
    "Infectivity_Scale_Type": "ANNUAL_BOXCAR_FUNCTION"
}

Infectivity_Boxcar_Forcing_Start_Time

float

0

365

0

The beginning of the high-infectivity season, in days, when Infectivity_Scale_Type is equal to ANNUAL_BOXCAR_FUNCTION.

{
    "Infectivity_Boxcar_Forcing_Amplitude": 0.25,
    "Infectivity_Boxcar_Forcing_End_Time": 270,
    "Infectivity_Boxcar_Forcing_Start_Time": 90,
    "Infectivity_Scale_Type": "ANNUAL_BOXCAR_FUNCTION"
}

Infectivity_Exponential_Baseline

float

0

1

0

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_Baseline": 0.1,
    "Infectivity_Exponential_Delay": 90,
    "Infectivity_Exponential_Rate": 45,
    "Infectivity_Scale_Type": "EXPONENTIAL_FUNCTION_OF_TIME"
}

Infectivity_Exponential_Delay

float

0

3.40E+38

0

The number of days before infectivity begins to ramp up exponentially. Infectivity_Scale_Type must be set to EXPONENTIAL_FUNCTION_OF_TIME.

{
    "Infectivity_Exponential_Baseline": 0.1,
    "Infectivity_Exponential_Delay": 90,
    "Infectivity_Exponential_Rate": 45,
    "Infectivity_Scale_Type": "EXPONENTIAL_FUNCTION_OF_TIME"
}

Infectivity_Exponential_Rate

float

0

3.40E+38

0

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.

{
    "Infectivity_Exponential_Rate": 45
}

Infectivity_Scale_Type

enum

NA

NA

CONSTANT_INFECTIVITY

A scale factor that allows infectivity to be altered by time or season. Possible values are:

CONSTANT_INFECTIVITY

No infectivity correction is applied.

FUNCTION_OF_TIME_AND_LATITUDE

Infectivity is corrected for approximate seasonal forcing. The use of a seasonal infectivity correction is a proxy for the effects of varying climate. From October through March, infectivity increases in the Northern Hemisphere and decreases in the Southern Hemisphere. From April through September, the trend reverses: regions closer to the equator have reduced forcing compared to temperate regions.

FUNCTION_OF_CLIMATE

Allows infectivity to be modulated by weather directly, for example, relative humidity in airborne simulations or rainfall in waterborne simulations. There is no default climate dependence enabled for generic simulations.

EXPONENTIAL_FUNCTION_OF_TIME

To facilitate certain burn-in scenarios, infectivity ramps up from zero at the beginning of the simulation according to the functional form, 1-exp(-rate*time), where the rate is specified by the parameter Infectivity_Scaling_Rate.

SINUSOIDAL_FUNCTION_OF_TIME

Allows infectivity to be time-dependent, following a sinusoidal shape defined by \(1 + \sin \text{Infectivity\_Sinusoidal\_Forcing\_Amplitude} \times \sin(2 \pi \times (\text{day} - \sin \text{Infectivity\_Sinusoidal\_Forcing\_Phase})/365)\). Set Infectivity_Sinusoidal_Forcing_Amplitude and Infectivity_Sinusoidal_Forcing_Phase.

ANNUAL_BOXCAR_FUNCTION

Allows infectivity to follow a boxcar function. The scale factor will be equal to 1 except for a single interval in which it is equal to a given constant equal to 1 + Infectivity_Boxcar_Forcing_Amplitude. Set Infectivity_Boxcar_Forcing_Amplitude, Infectivity_Boxcar_Forcing_End_Time, and Infectivity_Boxcar_Forcing_Start_Time.

{
    "Infectivity_Scale_Type": "FUNCTION_OF_CLIMATE"
}

Infectivity_Sinusoidal_Forcing_Amplitude

float

0

1

0

Sets the amplitude of sinusoidal variations in Base_Infectivity. Only used when Infectivity_Scale_Type is set to SINUSOIDAL_FUNCTION_OF_TIME.

{
    "Infectivity_Scale_Type": "SINUSOIDAL_FUNCTION_OF_TIME",
    "Infectivity_Sinusoidal_Forcing_Amplitude": 0.1,
    "Infectivity_Sinusoidal_Forcing_Phase": 0
}

Infectivity_Sinusoidal_Forcing_Phase

float

0

365

0

Sets the phase of sinusoidal variations in Base_Infectivity. Only used when Infectivity_Scale_Type is set to SINUSOIDAL_FUNCTION_OF_TIME.

{
    "Infectivity_Scale_Type": "SINUSOIDAL_FUNCTION_OF_TIME",
    "Infectivity_Sinusoidal_Forcing_Amplitude": 0.1,
    "Infectivity_Sinusoidal_Forcing_Phase": 0
}

Male_To_Female_Relative_Infectivity_Ages

array of floats

NA

NA

0

The vector of ages governing the susceptibility of females relative to males, by age. Used with Male_To_Female_Relative_Infectivity_Multipliers.

{
    "Male_To_Female_Relative_Infectivity_Ages": [
        15,
        25,
        35
    ]
}

Male_To_Female_Relative_Infectivity_Multipliers

array of floats

NA

NA

1

An array of scale factors governing the susceptibility of females relative to males, by age. Used with Male_To_Female_Relative_Infectivity_Ages. Scaling is linearly interpolated between ages. The first value is used for individuals younger than the first age in Male_To_Female_Relative_Infectivity_Ages and the last value is used for individuals older than the last age.

{
    "Male_To_Female_Relative_Infectivity_Multipliers": [
        5,
        1,
        0.5
    ]
}

Maternal_Infection_Transmission_Probability

float

0

1

0

The probability of transmission of infection from mother to infant at birth. Enable_Maternal_Infection_Transmission must be set to 1.

Note

For malaria and vector simulations, set this to 0. Instead, use the Maternal_Antibody_Protection, Maternal_Antibody_Decay_Rate, and Maternal_Antibodies_Type parameters.

{
    "Maternal_Infection_Transmission_Probability": 0.3
}

Maternal_Transmission_ART_Multiplier

float

0

1

0.1

The maternal transmission multiplier for on-ART mothers.

{
    "Maternal_Transmission_ART_Multiplier": 0.03
}

Max_Individual_Infections

integer

0

1000

1

The limit on the number of infections that an individual can have simultaneously. Enable_Superinfection must be set to 1.

{
    "Max_Individual_Infections": 5
}

Population_Density_C50

float

0

3.40E+38

10

The population density at which R0 for a 2.5-arc minute square reaches half of its initial value. Population_Density_Infectivity_Correction must be set to SATURATING_FUNCTION_OF_DENSITY.

{
    "Population_Density_C50": 30
}

Population_Density_Infectivity_Correction

enum

NA

NA

CONSTANT_INFECTIVITY

Correction to alter infectivity by population density set in the Population_Density_C50 parameter. Measured in people per square kilometer. Possible values are:

  • CONSTANT_INFECTIVITY

  • SATURATING_FUNCTION_OF_DENSITY

Note

Sparsely populated areas have a lower infectivity, while densely populated areas have a higher infectivity, which rises to saturate at the Base_Infectivity value.

{
    "Population_Density_Infectivity_Correction": "SATURATING_FUNCTION_OF_DENSITY"
}

Relative_Sample_Rate_Immune

float

0.001

1

0.1

The relative sampling rate for people who have acquired immunity through recovery or vaccination. The immune threshold at which to downsample is set by Immune_Threshold_For_Downsampling. If set to 1, this will have no effect, even if the individual’s immunity modifier is below threshold. This can be a useful sanity check while learning this feature. Individual_Sampling_Type must be set to ADAPTED_SAMPLING_BY_IMMUNE_STATE.

{
    "Relative_Sample_Rate_Immune": 0.1,
    "Immune_Threshold_For_Downsampling": 0.8,
    "Individual_Sampling_Type": "ADAPTED_SAMPLING_BY_IMMUNE_STATE"
}

STI_Coinfection_Acquisition_Multiplier

float

0

100

10

The per-act HIV acquisition probability multiplier for individuals with the STI coinfection flag.

{
    "STI_Coinfection_Transmission_Multiplier": 13.4,
    "STI_Coinfection_Acquisition_Multiplier": 10
}

STI_Coinfection_Transmission_Multiplier

float

0

100

10

The per-act HIV transmission probability multiplier for individuals with the STI coinfection flag.

{
    "STI_Coinfection_Transmission_Multiplier": 13.4,
    "STI_Coinfection_Acquisition_Multiplier": 10
}

Susceptibility_Scaling_Rate

float

0

3.40282e+38

0

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": "LOG_LINEAR_FUNCTION_OF_TIME",
    "Susceptibility_Scaling_Rate": 1.58
}

Susceptibility_Scaling_Type

enum

NA

NA

CONSTANT_SUSCEPTIBILITY

The effect of time on susceptibility. Possible values are:

  • CONSTANT_SUSCEPTIBILITY

  • LOG_LINEAR_FUNCTION_OF_TIME

{
    "Susceptibility_Scaling_Type": "CONSTANT_SUSCEPTIBILITY"
}

Symptomatic_Infectious_Offset

float

-3.40282e+38

3.40282e+38

3.40282e+38

Amount of time, in days, after the infectious period starts that symptoms appear. Negative values imply an individual is symptomatic before infectious. If this offset is greater than the infectious duration, the infection will not be symptomatic. For example, if Incubation_Period_Constant is set to 10 and Symptomatic_Infectious_Offset is set to 4, then an infected person would become symptomatic 14 days after transmission.

{
    "Infectious_Period_Distribution": "CONSTANT_DISTRIBUTION",
    "Symptomatic_Infectious_Offset": 4,
    "Incubation_Period_Constant": 10
}

Transmission_Blocking_Immunity_Decay_Rate

float

0

1000

0.001

The rate at which transmission-blocking immunity decays after the base transmission-blocking immunity offset period. Used only when Enable_Immunity and Enable_Immune_Decay parameters are set to true (1).

{
    "Transmission_Blocking_Immunity_Decay_Rate": 0.01
}

Transmission_Blocking_Immunity_Duration_Before_Decay

float

0

45000

0

The number of days after infection until transmission-blocking immunity begins to decay. Only used when Enable_Immunity and Enable_Immune_Decay parameters are set to true (1).

{
    "Transmission_Blocking_Immunity_Duration_Before_Decay": 90
}

Input files

The following parameters set the paths to the the campaign file and the input files for climate, migration, demographics, and load-balancing.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Air_Migration_Filename

string

NA

NA

The path to the input file that defines patterns of migration by airplane. Enable_Air_Migration must be set to true (1). The file must be in .bin format.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Air_Migration": 1,
    "Air_Migration_Filename": "../Global_1degree_air_migration.bin"
}

Air_Temperature_Filename

string

NA

NA

air_temp.json

The path to the input file that defines air temperature data measured two meters above ground. Climate_Model must be set to CLIMATE_BY_DATA. The file must be in .bin format.

{
    "Climate_Model": "CLIMATE_BY_DATA",
    "Air_Temperature_Filename": "Namawala_single_node_air_temperature_daily.bin"
}

Campaign_Filename

string

NA

NA

The path to the campaign file. It is required when interventions are part of the simulation and Enable_Interventions is set to true (1). The file must be in .json format.

{
    "Enable_Interventions": 1,
    "Campaign_Filename": "campaign.json"
}

Demographics_Filenames

array of strings

NA

NA

An array of the paths to demographics files containing information on the identity and demographics of the region to simulate. The files must be in .json format. Note that this parameter is only required when Enable_Demographics_Builtin is set to 0.

{
    "Demographics_Filenames": [
        "Namawala_single_node_demographics.json",
        "Namawala_demographics_overlay.json"
    ]
}

Family_Migration_Filename

string

NA

NA

The name of the binary file to use to configure family migration. Enable_Family_Migration must be set to true (1). The file must be in .bin format.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Family_Migration": 1,
    "Family_Migration_Filename": "../inputs/family_migration.bin"
}

Koppen_Filename

string

NA

NA

koppen_climate.json

The path to the input file used to specify Koppen climate classifications. Climate_Model must be set to CLIMATE_KOPPEN.

{
    "Koppen_Filename": "Mad_2_5arcminute_koppen.dat"
}

Land_Temperature_Filename

string

NA

NA

land_temp.json

The path of the input file defining temperature data measured at land surface; used only when Climate_Model is set to CLIMATE_BY_DATA. The file must be in .bin format.

{
    "Land_Temperature_Filename": "Namawala_single_node_land_temperature_daily.bin"
}

Load_Balance_Filename

string

NA

NA

UNINITIALIZED STRING

The path to the input file used when a static load balancing scheme is selected. The file must be in .json format.

{
    "Load_Balance_Filename": "GitHub_426_LoadBalance.json"
}

Local_Migration_Filename

string

NA

NA

The path of the input file which defines patterns of migration to adjacent nodes by foot travel. The file must be in .bin format.

{
    "Local_Migration_Filename": "Local_Migration.bin"
}

Rainfall_Filename

string

NA

NA

rainfall.json

The path of the input file which defines rainfall data. Climate_Model must be set to CLIMATE_BY_DATA. The file must be in .bin format.

{
    "Rainfall_Filename": "Namawala_single_node_rainfall_daily.bin"
}

Regional_Migration_Filename

string

NA

NA

The path of the input file which defines patterns of migration by vehicle via road or rail network. If the node is not on a road or rail network, regional migration focuses on the closest hub city in the network. The file must be in .bin format.

{
    "Regional_Migration_Filename": "Regional_Migration.bin"
}

Relative_Humidity_Filename

string

NA

NA

rel_hum.json

The path of the input file which defines relative humidity data measured 2 meters above ground. Climate_Model must be set to CLIMATE_BY_DATA. The file must be in .bin format.

{
    "Relative_Humidity_Filename": "Namawala_single_node_relative_humidity_daily.bin"
}

Sea_Migration_Filename

string

NA

NA

The path of the input file which defines patterns of migration by ship. Only used when Enable_Sea_Migration is set to true (1). The file must be in .bin format.

{
    "Sea_Migration_Filename": "5x5_Households_Work_Migration.bin"
}

Serialized_Population_Filenames

array of strings

NA

NA

NA

An array of filenames with serialized population data. The number of filenames must match the number of cores used for the simulation. The files must be in .dtk format. Serialized population files are created using Serialization_Time_Steps.

{
    "Serialized_Population_Filenames": [
        "state-00010.dtk"
    ]
}

Serialized_Population_Path

string

NA

NA

.

The root path for the serialized population files. Serialized population files are created using Serialization_Time_Steps.

{
    "Serialized_Population_Path": "../00_Generic_Version_1_save/output"
}

Migration

The following parameters determine aspects of population migration into and outside of a node, including daily commutes, seasonal migration, and one-way moves. Modes of transport includes travel by foot, automobile, sea, or air. Migration can also be configured to move all individuals in a family at the same time.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Air_Migration_Filename

string

NA

NA

The path to the input file that defines patterns of migration by airplane. Enable_Air_Migration must be set to true (1). The file must be in .bin format.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Air_Migration": 1,
    "Air_Migration_Filename": "../Global_1degree_air_migration.bin"
}

Air_Migration_Roundtrip_Duration

float

0

10000

1

The average time spent (in days) at the destination node during a round-trip migration by airplane. Migration_Pattern must be set to SINGLE_ROUND_TRIPS.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Air_Migration": 1,
    "Migration_Pattern": "SINGLE_ROUND_TRIPS",
    "Air_Migration_Roundtrip_Duration": 2
}

Air_Migration_Roundtrip_Probability

float

0

1

0.8

The likelihood that an individual who flies to another node will return to the node of origin during the next migration. Enable_Air_Migration must be set to true (1).

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Air_Migration": 1,
    "Air_Migration_Roundtrip_Probability": 0.9
}

Enable_Air_Migration

boolean

0

1

0

Controls whether or not migration by air travel will occur. Migration_Model must be set to FIXED_RATE_MIGRATION.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Air_Migration": 1,
    "Air_Migration_Filename": "../inputs/air_migration.bin"
}

Enable_Family_Migration

boolean

0

1

0

Controls whether or not all members of a household can migrate together when a MigrateFamily event occurs. All residents must be home before they can leave on the trip. Migration_Model must be set to FIXED_RATE_MIGRATION.

{
    "Enable_Migration": "FIXED_RATE_MIGRATION",
    "Enable_Family_Migration": 1,
    "Family_Migration_Filename": "../inputs/family_migration.bin"
}

Enable_Local_Migration

boolean

0

1

0

Controls whether or not local migration (the diffusion of people in and out of nearby nodes by foot travel) occurs. Migration_Model must be set to FIXED_RATE_MIGRATION.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Local_Migration": 1,
    "Local_Migration_Filename": "../inputs/local_migration.bin"
}

Enable_Migration_Heterogeneity

boolean

0

1

1

Controls whether or not migration rate is heterogeneous among individuals within each group that has a migration rate setting. Set to true (1) to apply a migration rate distribution (see NodeAttributes demographics parameters); set to false (0) to use the same migration rate applied to all individuals in the group. For example, if you are using a migration file that sets different migration rates for each age group in a node, you could apply an Gaussian distribution around a mean value in each age group or you could assign the same value to each individual in each age group.

Migration_Model must be set to FIXED_RATE_MIGRATION.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Migration_Heterogeneity": 1
}

Enable_Regional_Migration

boolean

0

1

0

Controls whether or not there is migration by road or rail network into and out of nodes in the simulation. Migration_Model must be set to FIXED_RATE_MIGRATION.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Regional_Migration": 1,
    "Regional_Migration_Filename": "../inputs/regional_migration.bin"
}

Enable_Sea_Migration

boolean

0

1

0

Controls whether or not there is migration on ships into and out of coastal cities with seaports. Migration_Model must be set to FIXED_RATE_MIGRATION.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Sea_Migration": 1,
    "Sea_Migration_Filename": "../inputs/sea_migration.bin"
}

Family_Migration_Filename

string

NA

NA

The name of the binary file to use to configure family migration. Enable_Family_Migration must be set to true (1). The file must be in .bin format.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Enable_Family_Migration": 1,
    "Family_Migration_Filename": "../inputs/family_migration.bin"
}

Family_Migration_Roundtrip_Duration

float

0

10000

1

The number of days to complete the trip and return to the original node. Migration_Pattern must be set to SINGLE_ROUND_TRIPS.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Migration_Pattern": "SINGLE_ROUND_TRIPS",
    "Enable_Family_Migration": 1,
    "Family_Migration_Roundtrip_Duration": 100
}

Local_Migration_Filename

string

NA

NA

The path of the input file which defines patterns of migration to adjacent nodes by foot travel. The file must be in .bin format.

{
    "Local_Migration_Filename": "Local_Migration.bin"
}

Local_Migration_Roundtrip_Duration

float

0

10000

1

The average time spent (in days) at the destination node during a round-trip migration by foot travel. Migration_Pattern must be set to SINGLE_ROUND_TRIPS.

{
    "Enable_Local_Migration": 1,
    "Migration_Pattern": "SINGLE_ROUND_TRIPS",
    "Local_Migration_Roundtrip_Duration": 1.0
}

Local_Migration_Roundtrip_Probability

float

0

1

0.95

The likelihood that an individual who walks into a neighboring node will return to the node of origin during the next migration. Only used when Enable_Local_Migration is set to true (1).

{
    "Local_Migration_Roundtrip_Probability": 1.0
}

Migration_Model

enum

NA

NA

NO_MIGRATION

Model to use for migration. Possible values are:

NO_MIGRATION

Migration into and out of nodes will not occur.

FIXED_RATE_MIGRATION

Migration into and out of nodes will occur at a fixed rate as defined in the migration files. At the beginning of the simulation or whenever an individual has just moved, they pick their next destination and the time and type of the migration. If an individual is on an outbound leg of their journey, they will query the node’s MigrationInfo object and, through probability, pick a new destination; if the individual is inbound, they will travel back to their previous location.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Local_Migration_Filename": "../inputs/local_migration.bin",
    "Enable_Local_Migration": 1
}

Migration_Pattern

enum

NA

NA

RANDOM_WALK_DIFFUSION

Describes the pattern of travel used during migration. Migration_Model must be set to FIXED_RATE_MIGRATION. Possible values are:

RANDOM_WALK_DIFFUSION

Individuals retain no memory of where they came from; every move is to a new destination with no thought of returning home.

SINGLE_ROUND_TRIPS

Individuals have a probability (determined Local_Migration_Roundtrip_Probability, Air_Migration_Roundtrip_Probability, etc.) that they will return to their original location after some duration of time. If they do not, the current location is the new departure point for migration, but their original location remains their home node.

WAYPOINTS_HOME

Individuals go on a multi-step journey along several waypoints and then retrace their steps back along their path once they have reached a maximum number of waypoints from their home node. For example, the path of travel would be 1 -> 2 -> 3 -> 4 -> 3 -> 2 -> 1 if their home is node 1. On the outbound journey, the duration at each waypoint is not set explicitly but is determined by each node’s migration rate; on the return journey, one timestep is spent at each waypoint.

{
    "Migration_Model": "FIXED_RATE_MIGRATION",
    "Migration_Pattern": "SINGLE_ROUND_TRIPS",
    "Enable_Local_Migration": 1,
    "Local_Migration_Roundtrip_Probability": 0.05,
    "Local_Migration_Roundtrip_Duration": 10
}

Regional_Migration_Filename

string

NA

NA

The path of the input file which defines patterns of migration by vehicle via road or rail network. If the node is not on a road or rail network, regional migration focuses on the closest hub city in the network. The file must be in .bin format.

{
    "Regional_Migration_Filename": "Regional_Migration.bin"
}

Regional_Migration_Roundtrip_Duration

float

0

10000

1

The average time spent (in days) at the destination node during a round-trip migration by road network. Migration_Pattern must be set to SINGLE_ROUND_TRIPS.

{
    "Enable_Regional_Migration": 1,
    "Migration_Pattern": "SINGLE_ROUND_TRIPS",
    "Regional_Migration_Roundtrip_Duration": 1.0
}

Regional_Migration_Roundtrip_Probability

float

0

1

0.1

The likelihood that an individual who travels by vehicle to another node will return to the node of origin during the next migration. Migration_Pattern must be set to SINGLE_ROUND_TRIPS.

{
    "Regional_Migration_Roundtrip_Probability": 1.0
}

Roundtrip_Waypoints

integer

0

1000

10

The maximum number of points reached during a trip before steps are retraced on the return trip home. Migration_Pattern must be set to WAYPOINTS_HOME.

{
    "Roundtrip_Waypoints": 5
}

Sea_Migration_Filename

string

NA

NA

The path of the input file which defines patterns of migration by ship. Only used when Enable_Sea_Migration is set to true (1). The file must be in .bin format.

{
    "Sea_Migration_Filename": "5x5_Households_Work_Migration.bin"
}

Sea_Migration_Roundtrip_Duration

float

0

10000

1

The average time spent at the destination node during a round-trip migration by ship. Used only when Migration_Pattern must be set to SINGLE_ROUND_TRIPS.

{
    "Enable_Sea_Migration": 1,
    "Migration_Pattern": "SINGLE_ROUND_TRIPS",
    "Sea_Migration_Roundtrip_Duration": 10000
}

Sea_Migration_Roundtrip_Probability

float

0

1

0.25

The likelihood that an individual who travels by ship into a neighboring node will return to the node of origin during the next migration. Used only when Enable_Sea_Migration is set to true (1).

{
    "Sea_Migration_Roundtrip_Probability": 0
}

x_Air_Migration

float

0

3.40E+38

1

Scale factor for the rate of migration by air, as provided by the migration file. Enable_Air_Migration must be set to 1.

{
    "Scale_Factor_Air_Migration": 1
}

x_Family_Migration

float

0

3.40E+38

1

Scale factor for the rate of migration by families, as provided by the migration file. Enable_Family_Migration must be set to true (1).

{
    "x_Family_Migration": 1
}

x_Local_Migration

float

0

3.40E+38

1

Scale factor for rate of migration by foot travel, as provided by the migration file. Enable_Local_Migration must be set to 1.

{
    "x_Local_Migration": 1
}

x_Regional_Migration

float

0

3.40E+38

1

Scale factor for the rate of migration by road vehicle, as provided by the migration file. Enable_Regional_Migration must be set to 1.

{
    "x_Regional_Migration": 1
}

x_Sea_Migration

float

0

3.40E+38

1

Scale factor for the rate of migration by sea, as provided by the migration file. Enable_Sea_Migration must be set to 1.

{
    "x_Sea_Migration": 1
}

Mortality and survival

The following parameter determine mortality and survival characteristics of the disease being modeled and the population in general (non-disease mortality).

Parameter

Data type

Minimum

Maximum

Default

Description

Example

ART_CD4_at_Initiation_Saturating_Reduction_in_Mortality

float

0

3.40E+38

350

The duration from ART enrollment to on-ART HIV-caused death increases with CD4 at ART initiation up to a threshold determined by this parameter value.

{
    "ART_CD4_at_Initiation_Saturating_Reduction_in_Mortality": 350
}

Base_Mortality

float

0

1000

0.001

The base mortality of the infection before accounting for individual immune modification factors. Depending on the setting of Mortality_Time_Course, this is either the daily probability of the disease being fatal (DAILY_MORTALITY) or the probability of death at the end of the infection duration (MORTALITY_AFTER_INFECTIOUS). Enable_Disease_Mortality must be set to 1 (true).

{
    "Enable_Vital_Dynamics": 1,
    "Mortality_Time_Course": "DAILY_MORTALITY",
    "Base_Mortality": 0.01
}

Days_Between_Symptomatic_And_Death_Weibull_Heterogeneity

float

0.1

10

1

The time between the onset of AIDS symptoms and death is sampled from a Weibull distribution; this parameter governs the heterogeneity (inverse shape) of the Weibull.

{
    "Days_Between_Symptomatic_And_Death_Weibull_Heterogeneity": 0.5
}

Days_Between_Symptomatic_And_Death_Weibull_Scale

float

1

3650

183

The time between the onset of AIDS symptoms and death is sampled from a Weibull distribution; this parameter governs the scale of the Weibull.

{
    "Days_Between_Symptomatic_And_Death_Weibull_Scale": 618.3
}

Death_Rate_Dependence

enum

NA

NA

NOT_INITIALIZED

Determines how likely individuals are to die from natural, non-disease causes. Enable_Natural_Mortality must be set to 1. Possible values are:

NOT_INITIALIZED

The daily mortality rate is 0, and no one dies from non-disease related causes.

NONDISEASE_MORTALITY_BY_AGE_AND_GENDER

The individual’s age and gender are taken into account to determine the daily mortality rate.

NONDISEASE_MORTALITY_BY_YEAR_AND_AGE_FOR_EACH_GENDER

Gender, age, and year, are all taken into account to determine the daily mortality rate.

Properties, rates, and bin sizes can be set for non-disease mortality for each gender in the demographics file (see Complex distributions parameters).

{
    "Death_Rate_Dependence": "NONDISEASE_MORTALITY_BY_AGE_AND_GENDER"
}

Enable_Disease_Mortality

boolean

0

1

1

Controls whether or not individuals are removed from the simulation due to disease deaths.

This parameter should always be set to 1 (true) for this simulation type.

{
    "Enable_Disease_Mortality": 1
}

Enable_Natural_Mortality

boolean

0

1

0

Controls whether or not individuals are removed from the simulation due to natural (non-disease) deaths. Enable_Vital_Dynamics must be set to 1 (true). Use Death_Rate_Dependence to set the natural death rate.

{
    "Enable_Natural_Mortality": 1,
    "Enable_Vital_Dynamics": 1
}

HIV_Adult_Survival_Scale_Parameter_Intercept

float

0.001

1000

21.182

This parameter determines the intercept of the scale parameter, ?, for the Weibull distribution used to determine HIV survival time.

Survival time with untreated HIV infection depends on the age of the individual at the time of infection, and is drawn from a Weibull distribution with shape parameter (see HIV_Adult_Survival_Shape_Parameter) and scale parameter, ?. The scale parameter is allowed to vary linearly with age as follows:

\(\lambda\) = HIV_Adult_Survival_Scale_Parameter_Intercept + HIV_Adult_Survival_Scale_ Parameter_Slope * Age (in years).

{
    "HIV_Adult_Survival_Scale_Parameter_Intercept": 21.182,
    "HIV_Adult_Survival_Scale_Parameter_Slope": -0.2717,
    "HIV_Adult_Survival_Shape_Parameter": 2.0,
    "HIV_Age_Max_for_Adult_Age_Dependent_Survival": 50.0
}

HIV_Adult_Survival_Scale_Parameter_Slope

float

-1000

1000

-0.2717

This parameter determines the slope of the scale parameter, ?, for the Weibull distribution used to determine HIV survival time.

Survival time with untreated HIV infection depends on the age of the individual at the time of infection, and is drawn from a Weibull distribution with shape parameter (see HIV_Adult_Survival_Shape_Parameter) and scale parameter, ?. The scale parameter is allowed to vary linearly with age as follows:

\(\lambda\) = HIV_Adult_Survival_Scale_Parameter_Intercept + HIV_Adult_Survival_Scale_ Parameter_Slope * Age (in years).

Because survival time with HIV becomes shorter with increasing age, HIV_Adult_Survival_Scale_ Parameter_Slope should be set to a negative number.

{
    "HIV_Adult_Survival_Scale_Parameter_Intercept": 21.182,
    "HIV_Adult_Survival_Scale_Parameter_Slope": -0.2717,
    "HIV_Adult_Survival_Shape_Parameter": 2.0,
    "HIV_Age_Max_for_Adult_Age_Dependent_Survival": 50.0
}

HIV_Adult_Survival_Shape_Parameter

float

0.001

1000

2

This parameter determines the shape of the Weibull distribution used to determine age-dependent survival time for individuals infected with HIV.

{
    "HIV_Adult_Survival_Scale_Parameter_Intercept": 21.182,
    "HIV_Adult_Survival_Scale_Parameter_Slope": -0.2717,
    "HIV_Adult_Survival_Shape_Parameter": 2.0,
    "HIV_Age_Max_for_Adult_Age_Dependent_Survival": 50.0
}

HIV_Age_Max_for_Adult_Age_Dependent_Survival

float

0

75

70

Survival time with untreated HIV infection depends on the age of the individual at the time of infection, and is drawn from a Weibull distribution with shape parameter and scale parameter, ?. See HIV_Adult_Survival_Scale_Parameter_Intercept, HIV_Adult_Survival_Scale_ Parameter_Slope, and HIV_Adult_Survival_Shape_Parameter.

Although the scale parameter for survival time declines with age, it cannot become negative. To avoid negative survival times at older ages, this parameter, HIV_Age_Max_for_Adult_Age_Dependent_Survival, determines the age beyond which HIV survival is no longer affected by further aging.

{
    "HIV_Adult_Survival_Scale_Parameter_Intercept": 21.182,
    "HIV_Adult_Survival_Scale_Parameter_Slope": -0.2717,
    "HIV_Adult_Survival_Shape_Parameter": 2.0,
    "HIV_Age_Max_for_Adult_Age_Dependent_Survival": 50.0
}

HIV_Age_Max_for_Child_Survival_Function

float

0

75

15

The maximum age at which an individual’s survival will be fit to the child survival function. If the value of this parameter falls between zero and the age of sexual debut, model results are not sensitive to this parameter as there is no mechanism for children to become infected between infancy and sexual debut.

{
    "HIV_Adult_Survival_Scale_Parameter_Intercept": 21.182,
    "HIV_Adult_Survival_Scale_Parameter_Slope": -0.2717,
    "HIV_Adult_Survival_Shape_Parameter": 2.0,
    "HIV_Age_Max_for_Adult_Age_Dependent_Survival": 50.0,
    "HIV_Age_Max_for_Child_Survival_Function": 15.0
}

HIV_Child_Survival_Rapid_Progressor_Fraction

float

0

1

0.57

The proportion of HIV-infected children who are rapid HIV progressors.

{
    "HIV_Child_Survival_Rapid_Progressor_Fraction": 0.57,
    "HIV_Child_Survival_Rapid_Progressor_Rate": 1.52
}

HIV_Child_Survival_Rapid_Progressor_Rate

float

0

1000

1.52

The exponential decay rate, in years, describing the distribution of HIV survival for children who are rapid progressors.

{
    "HIV_Child_Survival_Rapid_Progressor_Fraction": 0.57,
    "HIV_Child_Survival_Rapid_Progressor_Rate": 1.52
}

HIV_Child_Survival_Slow_Progressor_Scale

float

0.001

1000

16

The Weibull scale parameter describing the distribution of HIV survival for children who are slower progressors.

{
    "HIV_Child_Survival_Slow_Progressor_Scale": 16.0,
    "HIV_Child_Survival_Slow_Progressor_Shape": 2.7
}

HIV_Child_Survival_Slow_Progressor_Shape

float

0.001

1000

2.7

The Weibull shape parameter describing the distribution of HIV survival for children who are slower progressors.

{
    "HIV_Child_Survival_Slow_Progressor_Scale": 16.0,
    "HIV_Child_Survival_Slow_Progressor_Shape": 2.7
}

Mortality_Blocking_Immunity_Decay_Rate

float

0

1

0.001

The rate at which mortality-blocking immunity decays after the mortality-blocking immunity offset period. Enable_Immune_Decay must be set to 1.

{
    "Mortality_Blocking_Immunity_Decay_Rate": 0.1
}

Mortality_Time_Course

enum

NA

NA

DAILY_MORTALITY

The method used to calculate disease deaths. Enable_Disease_Mortality must be set to 1.

Possible values are:

DAILY_MORTALITY

Calculated at every time step.

MORTALITY_AFTER_INFECTIOUS

Calculated once at the end of the disease duration.

{
    "Mortality_Time_Course": "MORTALITY_AFTER_INFECTIOUS"
}

x_Other_Mortality

float

0

3.40E+38

1

Scale factor for mortality from causes other than the disease being simulated. Base mortality is provided by the demographics file (see Complex distributions parameters). Enable_Natural_Mortality must be set to 1.

{
    "x_Other_Mortality": 1
}

Output settings

The following parameters configure whether or not output reports are created for the simulation, such as reports detailing spatial or demographic data at each time step. By default, the Inset chart output report is always created.

The following figures are examples for the parameter Report_HIV_Period.

When Report_HIV_Period is set to a value that is less than the Simulation_Timestep, a record will be written during the next time step after the reported period. More than one period may occur before the next time step.

_images/Report_HIV_Period-timeline-example1.png

Figure 1: Report_HIV_Period < **Simulation_Timestep

When Report_HIV_Period is greater than Simulation_Timestep, a record will be written during the next time step after the period occurs. This means that a record may not be written at all time steps.

_images/Report_HIV_Period-timeline-example2.png

Figure 2: Report_HIV_Period > **Simulation_Timestep

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Custom_Coordinator_Events

array of strings

NA

NA

NA

The list of valid, user-defined events for Event Coordinators that will be included in the campaign. Any event used in the campaign must either be one of the built-in events or in this list.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

{
    "Custom_Coordinator_Events": [
        "Coordinator_Event_1",
        "Coordinator_Event_2",
        "Coordinator_Event_3"
    ]
}

Custom_Individual_Events

array of strings

NA

NA

NA

The list of valid, user-defined events that will be included in the campaign. Any event used in the campaign must either be one of the built-in events or in this list.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

{
    "Custom_Individual_Events": [
        "Individual_Event_1",
        "Individual_Event_2",
        "Individual_Event_3"
    ]
}

Custom_Node_Events

array of strings

NA

NA

NA

The list of valid, user-defined events for nodes that will be included in the campaign. Any event used in the campaign must either be one of the built-in events or in this list.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

{
    "Custom_Node_Events": [
        "Node_Event_1",
        "Node_Event_2",
        "Node_Event_3"
    ]
}

Custom_Reports_Filename

string

NA

NA

UNINITIALIZED STRING

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.

{
    "Custom_Reports_Filename": "custom_reports.json"
}

Enable_Default_Reporting

boolean

0

1

1

Controls whether or not the default InsetChart.json report is created.

{
    "Enable_Default_Reporting": 1
}

Enable_Demographics_Reporting

boolean

0

1

1

Controls whether or not demographic summary data and age-binned reports are outputted to file.

{
    "Enable_Demographics_Reporting": 1
}

Enable_Property_Output

boolean

0

1

0

Controls whether or not to create property output reports, which detail groups as defined in IndividualProperties in the demographics file (see NodeProperties and IndividualProperties parameters). When there is more than one property type, the report will display the channel information for all combinations of the property type groups.

{
    "Enable_Property_Output": 1
}

Enable_Spatial_Output

boolean

0

1

0

Controls whether or not spatial output reports are created. If set to true (1), spatial output reports include all channels listed in the parameter Spatial_Output_Channels.

Note

Spatial output files require significant processing time and disk space.

{
    "Enable_Spatial_Output": 1,
    "Spatial_Output_Channels": [
        "Prevalence",
        "New_Infections"
    ]
}

Report_Coital_Acts

boolean

0

1

0

Set to true (1) to enable or to false (0) to disable the RelationshipConsummatedReport.csv output report.

{
    "Report_Coital_Acts": 1
}

Report_Coordinator_Event_Recorder

boolean

0

1

0

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.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

{
    "Custom_Coordinator_Events": [
        "Coordinator_Event_1",
        "Coordinator_Event_2",
        "Coordinator_Event_3"
    ],
    "Report_Coordinator_Event_Recorder": 1,
    "Report_Coordinator_Event_Recorder_Events": [
        "Coordinator_Event_1",
        "Coordinator_Event_2",
        "Coordinator_Event_3"
    ]
}

Report_Coordinator_Event_Recorder_Events

array of strings

NA

NA

NA

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.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

{
    "Custom_Coordinator_Events": [
        "Coordinator_Event_1",
        "Coordinator_Event_2",
        "Coordinator_Event_3"
    ],
    "Report_Coordinator_Event_Recorder": 1,
    "Report_Coordinator_Event_Recorder_Events": [
        "Coordinator_Event_1",
        "Coordinator_Event_2",
        "Coordinator_Event_3"
    ]
}

Report_Coordinator_Event_Recorder_Ignore_Events_In_List

boolean

0

1

0

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.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

{
    "Custom_Coordinator_Events": [
        "Coordinator_Event_1",
        "Coordinator_Event_2",
        "Coordinator_Event_3"
    ],
    "Report_Coordinator_Event_Recorder": 1,
    "Report_Coordinator_Event_Recorder_Events": [
        "Coordinator_Event_1",
        "Coordinator_Event_2",
        "Coordinator_Event_3"
    ],
    "Report_Coordinator_Event_Recorder_Ignore_Events_In_List": 0
}

Report_Event_Recorder

boolean

0

1

0

Set to true (1) to enable or to false (0) to disable the ReportEventRecorder.csv output report that lists individual events in the simulation. See Event list for a list of all possible built-in events that will be recorded in the output when enabled.

{
    "Report_Event_Recorder": 1,
    "Report_Event_Recorder_Events": [
        "VaccinatedA",
        "VaccineExpiredA",
        "VaccinatedB",
        "VaccineExpiredB"
    ],
    "Report_Event_Recorder_Ignore_Events_In_List": 0
}

Report_Event_Recorder_Events

array

NA

NA

The list of events to include or exclude in the ReportEventRecorder.csv output report, based on how Report_Event_Recorder_Ignore_Events_In_List is set. See Event list for a list of all possible built-in events. You can also define events in Custom_Individual_Events. The list cannot be empty.

{
    "Report_Event_Recorder": 1,
    "Report_Event_Recorder_Events": [
        "VaccinatedA",
        "VaccineExpiredA",
        "VaccinatedB",
        "VaccineExpiredB"
    ],
    "Report_Event_Recorder_Ignore_Events_In_List": 0
}

Report_Event_Recorder_Ignore_Events_In_List

boolean

0

1

0

If set to false (0), only the events listed in the Report_Event_Recorder_Events array will be included in the ReportEventRecorder.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.

Value

Events array

Output file

0

No events

No events

0

One or more events

Only the listed events.

1

No events

All events occurring in the simulation.

1

One or more events

All simulation events occurring in the simulation, except for those listed.

{
    "Report_Event_Recorder": 1,
    "Report_Event_Recorder_Events": [
        "VaccinatedA",
        "VaccineExpiredA",
        "VaccinatedB",
        "VaccineExpiredB"
    ],
    "Report_Event_Recorder_Ignore_Events_In_List": 0
}

Report_Event_Recorder_Individual_Properties

array of strings

NA

NA

[]

Specifies an array of (optional) individual property keys, as defined in IndividualProperties in the demographics file, to be added as additional columns to the output report. Individual’s IP value will be added to the (key) column at the time of the event.

{
    "Report_Event_Recorder_Individual_Properties": [
        "Accessibility",
        "Risk"
    ]
}

Report_HIV_ART

boolean

0

1

0

Set to true (1) to enable or to false (0) to disable the ReportHIVART.csv output report.

{
    "Report_HIV_ART": 0
}

Report_HIV_ByAgeAndGender

boolean

0

1

0

Set to true (1) to enable or to false (0) to disable the ReportHIVByAgeAndGener.csv output report.

{
    "Report_HIV_ByAgeAndGender": 1
}

Report_HIV_ByAgeAndGender_Add_Concordant_Relationships

boolean

0

1

0

When set to true (1), a ‘concordant’ column for each relationship type, as defined with the Society parameter in the demographics file, is included in the ReportHIVByAgeAndGender.csv output report file. Each ‘concordant’ column will include the number of concordant relationships, where both partners have the same disease status.

{
    "Report_HIV_ByAgeAndGender_Add_Concordant_Relationships": 1
}

Report_HIV_ByAgeAndGender_Add_Relationships

boolean

0

1

0

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_Relationships": 1
}

Report_HIV_ByAgeAndGender_Add_Transmitters

boolean

0

1

0

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_Add_Transmitters": 1
}

Report_HIV_ByAgeAndGender_Collect_Age_Bins_Data

array of floats

-3.40282e+38

3.40282e+38

1

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. For example, if you had:

“Report_HIV_ByAgeAndGender_Collect_Age_Bins_Data” : [ 0, 10, 20, 50, 100 ]

The report would have the following age bins: From 0 up to (but not including) 10, from 10 up to (but not including) 20, from 20 up to (but not including) 50, from 50 up to (but not including) 100, and 100 and over.

If no values are specified in the array, then the output report will have no age binning.

{
    "Report_HIV_ByAgeAndGender_Collect_Age_Bins_Data": [
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20,
        21,
        22,
        23,
        24,
        25,
        26,
        27,
        28,
        29,
        30,
        31,
        32,
        33,
        34,
        35,
        36,
        37,
        38,
        39,
        40,
        41,
        42,
        43,
        44,
        45,
        46,
        47,
        48,
        49,
        50,
        51,
        52,
        53,
        54,
        55,
        56,
        57,
        58,
        59,
        60,
        61,
        62,
        63,
        64,
        65,
        66,
        67,
        68,
        69,
        70,
        71,
        72,
        73,
        74,
        75,
        76,
        77,
        78,
        79,
        80,
        81,
        82,
        83,
        84,
        85,
        86,
        87,
        88,
        89,
        90,
        91,
        92,
        93,
        94,
        95,
        96,
        97,
        98,
        99
    ]
}

Report_HIV_ByAgeAndGender_Collect_Circumcision_Data

boolean

0

1

0

When set to 1, the ReportHIVByAgeAndGender.csv output report will have separate rows for those who do or do not have the MaleCircumcision intervention and an additional column with 0 and 1 indicating whether the row corresponds to those who are or are not circumcised. Setting this to 1 doubles the number of rows in ReportHIVByAgeAndGender.csv.

{
    "Report_HIV_ByAgeAndGender_Collect_Circumcision_Data": 0
}

Report_HIV_ByAgeAndGender_Collect_Gender_Data

boolean

0

1

0

Controls whether or not the report is stratified by gender; to enable gender stratification, set to true (1).

{
    "Report_HIV_ByAgeAndGender_Collect_Gender_Data": 1
}

Report_HIV_ByAgeAndGender_Collect_HIV_Data

boolean

0

1

0

When set to 1, the ReportHIVByAgeAndGender.csv output report will have separate rows for those who do or do not have the ART intervention and an additional column with 0 and 1 indicating whether the row corresponds to those who are or are not on ART. Setting this to 1 doubles the number of rows in ReportHIVByAgeAndGender.csv.

{
    "Report_HIV_ByAgeAndGender_Collect_HIV_Data": 1
}

Report_HIV_ByAgeAndGender_Collect_Intervention_Data

array of strings

NA

NA

NA

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_Intervention_Data": [
        "ART_Intervention",
        "PrEP_Intervention"
    ]
}

Report_HIV_ByAgeAndGender_Collect_IP_Data

boolean

0

1

0

When set to 1, the ReportHIVByAgeAndGender.csvoutput report will have separate rows for those with different IndividualProperties values and an additional column for each property indicating which row corresponds to which value of that property. Setting this to 1 typically increases by severalfold the number of rows in ReportHIVByAgeAndGender.csv.

{
    "Report_HIV_ByAgeAndGender_Collect_IP_Data": 0
}

Report_HIV_ByAgeAndGender_Collect_On_Art_Data

boolean

0

1

0

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.

{
    "Report_HIV_ByAgeAndGender_Collect_On_Art_Data": 1
}

Report_HIV_ByAgeAndGender_Event_Counter_List

array of strings

NA

NA

NA

A list of columns to add to the ReportHIVByAgeAndGender.csv output files counting the number of times an intervention with the corresponding Distributed_Event_Trigger has been distributed. Note that the interventions will be specified in the campaign file.

{
    "Report_HIV_ByAgeAndGender_Event_Counter_List": [
        "Reduced_Acquire_Lowest",
        "Reduced_Acquire_Medium",
        "Reduced_Acquire_Low",
        "Reduced_Acquire_Highest_Not_Duplicated"
    ]
}

Report_HIV_ByAgeAndGender_Has_Intervention_With_Name

string

NA

NA

“”

This parameter will be deprecated. We recommend you use Report_HIV_ByAgeAndGender_Collect_Intervention_Data instead.

{
    "Report_HIV_ByAgeAndGender_Has_Intervention_With_Name": "VaccineA"
}

Report_HIV_ByAgeAndGender_Start_Year

float

1900

2200

1900

The beginning calendar year that will be collected by the ReportHIVByAgeAndGender.csv report.

{
    "Report_HIV_ByAgeAndGender_Start_Year": 1962,
    "Report_HIV_ByAgeAndGender_Stop_Year": 1978
}

Report_HIV_ByAgeAndGender_Stop_Year

float

1900

2200

2200

The ending calendar year that will be collected by the HIVByAgeAndGender.csv report.

{
    "Report_HIV_ByAgeAndGender_Start_Year": 1962,
    "Report_HIV_ByAgeAndGender_Stop_Year": 1978
}

Report_HIV_ByAgeAndGender_Stratify_Infected_By_CD4

boolean

0

1

0

When set to 1, the ReportHIVByAgeAndGender.csv output file will separate the count of the number of infected individuals by CD4 stratum. When set to 0, the number of infected individuals are aggregated into one column regardless of CD4 count.

{
    "Report_HIV_ByAgeAndGender_Stratify_Infected_By_CD4": 0
}

Report_HIV_Event_Channels_List

array of strings

NA

NA

NA

This is the list of events included in the InsetChart report. If events are specified with this parameter, the InsetChart will include a channel for each event listed. If no events are listed, a “Number of Events” channel will display the total number of all events that occurred during the simulation.

{
    "Report_HIV_Event_Channels_List": [
        "NewInfectionEvent",
        "HIVNeedsHIVTest",
        "HIVPositiveHIVTest",
        "HIVNegativeHIVTest",
        "HIVDiagnosedEligibleForART",
        "HIVSymptomatic",
        "DiseaseDeaths",
        "NonDiseaseDeaths",
        "Births"
    ]
}

Report_HIV_Infection

boolean

0

1

0

Enables or disables the ReportHIVInfection.csv output report.

{
    "Report_HIV_Infection": 0
}

Report_HIV_Infection_Start_Year

float

1900

2200

1900

The beginning calendar year that will be collected by the ReportHIVInfection.csv output report. Report_HIV_Infection must be set to 1.

{
    "Report_HIV_Infection_Start_Year": 1900
}

Report_HIV_Infection_Stop_Year

float

1900

2200

2200

The ending calendar year that will be collected by the ReportHIVInfection.csv output report. Report_HIV_Infection must be set to 1.

{
    "Report_HIV_Infection_Stop_Year": 2100
}

Report_HIV_Mortality

boolean

0

1

0

Enables or disables the HIVMortality.csv (disease and non-disease deaths) output report.

{
    "Report_HIV_Mortality": 0
}

Report_HIV_Period

float

30

36500

730

The number of days between records in the HIV_By_Age_And_Gender output report. Output data will only be recorded during a time step, so if Report_HIV_Period is set to a value less than the value set for Simulation_Timestep, more than one period may occur before the next time step. When Report_HIV_Period is greater than the value set for Simulation_Timestep, a record may not be written during each time step. Note that the number of days between records is half the time specified by this parameter. For example, if Report_HIV_Period is set to 40, the actual time between records is 20 days. For best results, use integers for this value.

{
    "Report_HIV_Period": 365
}

Report_Node_Event_Recorder

boolean

0

1

0

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.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

{
    "Custom_Node_Events": [
        "Node_Event_1",
        "Node_Event_2"
    ],
    "Report_Node_Event_Recorder": 1,
    "Report_Node_Event_Recorder_Events": [
        "Node_Event_1",
        "Node_Event_2"
    ]
}

Report_Node_Event_Recorder_Ignore_Events_In_List

boolean

0

1

0

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.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

Value

Events array

Output file

0

No events

No events

0

One or more events

Only the listed events.

1

No events

All events occurring in the simulation.

1

One or more events

All simulation events occurring in the simulation, except for those listed.

{
    "Custom_Node_Events": [
        "Node_Event_1",
        "Node_Event_2"
    ],
    "Report_Node_Event_Recorder": 1,
    "Report_Node_Event_Recorder_Events": [
        "Node_Event_1",
        "Node_Event_2"
    ],
    "Report_Node_Event_Recorder_Ignore_Events_In_List": 0
}

Report_Node_Event_Recorder_Node_Properties

array of strings

NA

NA

[]

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.

{
    "Custom_Node_Events": [
        "Node_Event_1",
        "Node_Event_2"
    ],
    "Report_Node_Event_Recorder": 1,
    "Report_Node_Event_Recorder_Events": [
        "Node_Event_1",
        "Node_Event_2"
    ],
    "Report_Node_Event_Recorder_Ignore_Events_In_List": 0,
    "Report_Node_Event_Recorder_Node_Properties": [
        "Geographic"
    ]
}

Report_Node_Event_Recorder_Stats_By_IPs

array of strings

NA

NA

[]

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.

{
    "Custom_Node_Events": [
        "Node_Event_1",
        "Node_Event_2"
    ],
    "Report_Node_Event_Recorder": 1,
    "Report_Node_Event_Recorder_Events": [
        "Node_Event_1",
        "Node_Event_2"
    ],
    "Report_Node_Event_Recorder_Ignore_Events_In_List": 0,
    "Report_Node_Event_Recorder_Node_Properties": [
        "Geographic"
    ],
    "Report_Node_Event_Recorder_Stats_By_IPs": [
        "Risk"
    ]
}

Report_Relationship_End

boolean

0

1

0

Enables or disables the RelationshipEnd.csv output report. For HIV simulations, there will be no additional columns.

{
    "Report_Relationship_End": 0
}

Report_Relationship_Start

boolean

0

1

0

Enables or disables the RelationshipStart.csv output report. For HIV simulations, there will be some additional columns.

{
    "Report_Relationship_Start": 0
}

Report_Surveillance_Event_Recorder

boolean

0

1

0

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.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

{
    "Custom_Coordinator_Events": [
        "Start_ACF",
        "Start_SIA_2",
        "Start_SIA_4",
        "Ind_Start_SIA_2",
        "Ind_Start_SIA_4",
        "Respond_To_Surveillance"
    ],
    "Report_Surveillance_Event_Recorder": 1,
    "Report_Surveillance_Event_Recorder_Events": [
        "Respond_To_Surveillance"
    ]
}

Report_Surveillance_Event_Recorder_Events

array of strings

NA

NA

NA

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.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

{
    "Custom_Coordinator_Events": [
        "Start_ACF",
        "Start_SIA_2",
        "Start_SIA_4",
        "Ind_Start_SIA_2",
        "Ind_Start_SIA_4",
        "Respond_To_Surveillance"
    ],
    "Report_Surveillance_Event_Recorder": 1,
    "Report_Surveillance_Event_Recorder_Events": [
        "Respond_To_Surveillance"
    ]
}

Report_Surveillance_Event_Recorder_Ignore_Events_In_List

boolean

0

1

0

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.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

Value

Events array

Output file

0

No events

No events

0

One or more events

Only the listed events.

1

No events

All events occurring in the simulation.

1

One or more events

All simulation events occurring in the simulation, except for those listed.

{
    "Custom_Coordinator_Events": [
        "Start_ACF",
        "Start_SIA_2",
        "Start_SIA_4",
        "Ind_Start_SIA_2",
        "Ind_Start_SIA_4",
        "Respond_To_Surveillance"
    ],
    "Report_Surveillance_Event_Recorder": 1,
    "Report_Surveillance_Event_Recorder_Events": [
        "Respond_To_Surveillance"
    ],
    "Report_Surveillance_Event_Recorder_Ignore_Events_In_List": 0
}

Report_Surveillance_Event_Recorder_Stats_By_IPs

array of strings

NA

NA

[]

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.

{
    "Custom_Coordinator_Events": [
        "Start_ACF",
        "Start_SIA_2",
        "Start_SIA_4",
        "Ind_Start_SIA_2",
        "Ind_Start_SIA_4",
        "Respond_To_Surveillance"
    ],
    "Report_Surveillance_Event_Recorder": 1,
    "Report_Surveillance_Event_Recorder_Events": [
        "Respond_To_Surveillance"
    ],
    "Report_Surveillance_Event_Recorder_Stats_By_IPs": []
}

Report_Transmission

boolean

0

1

0

Enables or disables the TransmissionReport.csv output report. For HIV simulations, there will be some additional columns.

{
    "Report_Transmission": 0
}

Spatial_Output_Channels

array of strings

NA

NA

[]

An array of channel names for spatial output by node and time step. The data from each channel will be written to a separate binary file. Enable_Spatial_Output must be set to true (1). Possible values are:

Air_Temperature

Data related to air temperature.

Births

Data related to the number of births.

Campaign_Cost

Data related to the costs of a campaign.

Disease_Deaths

Data related to the number of deaths due to disease.

Human_Infectious_Reservoir

Data related to the total infectiousness of the population.

Infection_Rate

Data related to infection rates.

Land_Temperature

Data related to the average land temperature over all nodes.

New_Infections

Data related to the presence of new infections.

New_Reported_Infections

Data related to the presence of reported new infections.

Population

Data related to the total population in the simulation.

Prevalence

Data related to the fraction of the population that is infected.

Rainfall

Data related to the presence of rainfall.

Relative_Humidity

Data related to the presence of relative humidity.

{
    "Spatial_Output_Channels": [
        "Prevalence",
        "New_Infections"
    ]
}

Population dynamics

The following parameters determine characteristics related to population dynamics, such as age distribution, births, deaths, and gender. The values set here generally interact closely with values in the demographics file.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Age_Initialization_Distribution_Type

enum

NA

NA

DISTRIBUTION_OFF

The method for initializing the age distribution in the simulated population. Possible values are:

DISTRIBUTION_OFF

All individuals default to age 20 years old.

DISTRIBUTION_SIMPLE

Individual ages are drawn from a distribution whose functional form is specified in the demographics file using the IndividualAttributes simple Age distribution parameters.

DISTRIBUTION_COMPLEX

Individual ages are drawn from a piecewise linear function specified in the demographics file complex distribution parameters.

{
    "Age_Initialization_Distribution_Type": "DISTRIBUTION_SIMPLE"
}

Birth_Rate_Boxcar_Forcing_Amplitude

float

0

3.40E+38

0

Fractional increase in birth rate during high birth season when Birth_Rate_Time_Dependence is set to ANNUAL_BOXCAR_FUNCTION.

{
    "Enable_Vital_Dynamics": 1,
    "Enable_Birth": 1,
    "Birth_Rate_Time_Dependence": "ANNUAL_BOXCAR_FUNCTION",
    "Birth_Rate_Boxcar_Forcing_Amplitude": 0.1
}

Birth_Rate_Boxcar_Forcing_End_Time

float

0

365

0

Day of the year when the high birth rate season ends when Birth_Rate_Time_Dependence is set to ANNUAL_BOXCAR_FUNCTION.

{
    "Enable_Vital_Dynamics": 1,
    "Enable_Birth": 1,
    "Birth_Rate_Time_Dependence": "ANNUAL_BOXCAR_FUNCTION",
    "Birth_Rate_Boxcar_Forcing_End_Time": 220
}

Birth_Rate_Boxcar_Forcing_Start_Time

float

0

365

0

Day of the year when the high birth rate season begins when Birth_Rate_Time_Dependence is set to ANNUAL_BOXCAR_FUNCTION.

{
    "Enable_Vital_Dynamics": 1,
    "Enable_Birth": 1,
    "Birth_Rate_Time_Dependence": "ANNUAL_BOXCAR_FUNCTION",
    "Birth_Rate_Boxcar_Forcing_Start_Time": 130
}

Birth_Rate_Dependence

enum

NA

NA

FIXED_BIRTH_RATE

The method used to modify the value set in BirthRate in the demographics file (see NodeAttributes parameters). Possible values are:

NONE

Births are not allowed during the simulation, even if Enable_Birth is set to true (1).

FIXED_BIRTH_RATE

The absolute rate at which new individuals are born, as set by BirthRate.

POPULATION_DEP_RATE

Scales the node population to determine the birth rate. If BirthRate is greater than 0.005, a value of 2% per year (0.02/365) is used instead.

DEMOGRAPHIC_DEP_RATE

Scales the female population within fertility age ranges to determine the birth rate. If BirthRate is greater than 0.005, a value of 1 child every 8 years of fertility [1/8/365(~0.000342)] is used instead.

INDIVIDUAL_PREGNANCIES

Scales the female population within fertility age ranges to determine the birth rate, but pregnancies are assigned on an individual basis and result in a 40-week pregnancy for a specific individual with a birth at the end.

INDIVIDUAL_PREGNANCIES_BY_URBAN_AND_AGE

Similar to INDIVIDUAL_PREGNANCIES, but determines the rate based on the FertilityDistribution (in IndividualAttributes) and Urban (in NodeAttributes), as well as the individual’s age.

INDIVIDUAL_PREGNANCIES_BY_AGE_AND_YEAR

Similar to INDIVIDUAL_PREGNANCIES, but determines the rate based on the FertilityDistribution (in IndividualAttributes), using the individual’s age and the year of the simulation.

{
    "Enable_Vital_Dynamics": 1,
    "Enable_Birth": 1,
    "Birth_Rate_Dependence": "POPULATION_DEP_RATE"
}

Birth_Rate_Sinusoidal_Forcing_Amplitude

float

0

1

0

The amplitude of sinusoidal variations in birth rate when Birth_Rate_Time_Dependence is set to SINUSOIDAL_FUNCTION_OF_TIME.

{
    "Enable_Vital_Dynamics": 1,
    "Enable_Birth": 1,
    "Birth_Rate_Time_Dependence": "SINUSOIDAL_FUNCTION_OF_TIME",
    "Birth_Rate_Sinusoidal_Forcing_Amplitude": 0.1
}

Birth_Rate_Sinusoidal_Forcing_Phase

float

0

365

0

The phase of sinusoidal variations in birth rate. Birth_Rate_Time_Dependence must be set to SINUSOIDAL_FUNCTION_OF_TIME.

{
    "Birth_Rate_Sinusoidal_Forcing_Phase": 20
}

Birth_Rate_Time_Dependence

enum

NA

NA

NONE

A scale factor for BirthRate that allows it to be altered by time or season. Enable_Birth must be set to true (1). Possible values are:

NONE

Birth rate does not vary by time.

SINUSOIDAL_FUNCTION_OF_TIME

Allows birth rate to be time-dependent, following a sinusoidal shape defined by \(1 + \sin \text{Birth\_Rate\_Sinusoidal\_Forcing\_Amplitude} \times \sin(2 \pi \times (\text{day} - \sin \text{Birth\_Rate\_Sinusoidal\_Forcing\_Phase})/365)\). Set Birth_Rate_Sinusoidal_Forcing_Amplitude and Birth_Rate_Sinusoidal_Forcing_Phase.

ANNUAL_BOXCAR_FUNCTION

Allows birth rate to follow a boxcar function. The scale factor will be equal to 1 except for a single interval in which it is equal to a given constant equal to 1 + Birth_Rate_Boxcar_Forcing_Amplitude. Set Birth_Rate_Boxcar_Forcing_Amplitude, Birth_Rate_Boxcar_Forcing_End_Time, and Birth_Rate_Boxcar_Forcing_Start_Time.

{
    "Enable_Vital_Dynamics": 1,
    "Enable_Birth": 1,
    "Birth_Rate_Time_Dependence": "ANNUAL_BOXCAR_FUNCTION"
}

Death_Rate_Dependence

enum

NA

NA

NOT_INITIALIZED

Determines how likely individuals are to die from natural, non-disease causes. Enable_Natural_Mortality must be set to 1. Possible values are:

NOT_INITIALIZED

The daily mortality rate is 0, and no one dies from non-disease related causes.

NONDISEASE_MORTALITY_BY_AGE_AND_GENDER

The individual’s age and gender are taken into account to determine the daily mortality rate.

NONDISEASE_MORTALITY_BY_YEAR_AND_AGE_FOR_EACH_GENDER

Gender, age, and year, are all taken into account to determine the daily mortality rate.

Properties, rates, and bin sizes can be set for non-disease mortality for each gender in the demographics file (see Complex distributions parameters).

{
    "Death_Rate_Dependence": "NONDISEASE_MORTALITY_BY_AGE_AND_GENDER"
}

Default_Geography_Initial_Node_Population

integer

0

1000000

1000

When using the built-in demographics for default geography, the initial number of individuals in each node. Note that the built-in demographics feature does not represent a real geographical location and is mostly used for testing. Enable_Demographics_Builtin must be set to true (1).

{
    "Enable_Demographics_Builtin": 1,
    "Default_Geography_Initial_Node_Population": 1000,
    "Default_Geography_Torus_Size": 3
}

Demographics_Filenames

array of strings

NA

NA

An array of the paths to demographics files containing information on the identity and demographics of the region to simulate. The files must be in .json format. Note that this parameter is only required when Enable_Demographics_Builtin is set to 0.

{
    "Demographics_Filenames": [
        "Namawala_single_node_demographics.json",
        "Namawala_demographics_overlay.json"
    ]
}

Enable_Aging

boolean

0

1

1

Controls whether or not individuals in a population age during the simulation. Enable_Vital_Dynamics must be set to true (1).

{
    "Enable_Vital_Dynamics": 1,
    "Enable_Aging": 1
}

Enable_Birth

boolean

0

1

1

Controls whether or not individuals will be added to the simulation by birth. Enable_Vital_Dynamics must be set to true (1). If you want new individuals to have the same intervention coverage as existing individuals, you must add a BirthTriggeredIV to the campaign file.

{
    "Enable_Vital_Dynamics": 1,
    "Enable_Birth": 1
}

Enable_Demographics_Birth

boolean

0

1

0

Controls whether or not newborns have identical or heterogeneous characteristics. Set to false (0) to give all newborns identical characteristics; set to true (1) to allow for heterogeneity in traits such as sickle-cell status. Enable_Birth must be set to true (1).

{
    "Enable_Birth": 1,
    "Enable_Demographics_Birth": 1
}

Enable_Demographics_Builtin

boolean

0

1

0

Controls whether or not built-in demographics for default geography will be used. Note that the built-in demographics feature does not represent a real geographical location and is mostly used for testing. Set to true (1) to define the initial population and number of nodes using Default_Geography_Initial_Node_Population and Default_Geography_Torus_Size. Set to false (0) to use demographics input files defined in Demographics_Filenames.

{
    "Enable_Demographics_Builtin": 1,
    "Default_Geography_Initial_Node_Population": 1000,
    "Default_Geography_Torus_Size": 3
}

Enable_Vital_Dynamics

boolean

0

1

1

Controls whether or not births and deaths occur in the simulation. Births and deaths must be individually enabled and set.

{
    "Enable_Vital_Dynamics": 1,
    "Enable_Birth": 1,
    "Death_Rate_Dependence": "NOT_INITIALIZED",
    "Base_Mortality": 0.002
}

Minimum_Adult_Age_Years

float

0

3.40E+38

15

The age, in years, after which an individual is considered an adult. Individual_Sampling_Type must be set to ADAPTED_SAMPLING_BY_AGE_GROUP.

{
    "Minimum_Adult_Age_Years": 17
}

Population_Density_Infectivity_Correction

enum

NA

NA

CONSTANT_INFECTIVITY

Correction to alter infectivity by population density set in the Population_Density_C50 parameter. Measured in people per square kilometer. Possible values are:

  • CONSTANT_INFECTIVITY

  • SATURATING_FUNCTION_OF_DENSITY

Note

Sparsely populated areas have a lower infectivity, while densely populated areas have a higher infectivity, which rises to saturate at the Base_Infectivity value.

{
    "Population_Density_Infectivity_Correction": "SATURATING_FUNCTION_OF_DENSITY"
}

Population_Scale_Type

enum

NA

NA

USE_INPUT_FILE

The method to use for scaling the initial population specified in the demographics input file. Possible values are:

USE_INPUT_FILE

Turns off population scaling and uses InitialPopulation in the demographics file (see NodeAttributes parameters).

FIXED_SCALING

Enables Base_Population_Scale_Factor.

{
    "Population_Scale_Type": "FIXED_SCALING"
}

Report_HIV_ByAgeAndGender_Add_Transmitters

boolean

0

1

0

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_Add_Transmitters": 1
}

Report_HIV_ByAgeAndGender_Collect_Age_Bins_Data

array of floats

-3.40282e+38

3.40282e+38

1

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. For example, if you had:

“Report_HIV_ByAgeAndGender_Collect_Age_Bins_Data” : [ 0, 10, 20, 50, 100 ]

The report would have the following age bins: From 0 up to (but not including) 10, from 10 up to (but not including) 20, from 20 up to (but not including) 50, from 50 up to (but not including) 100, and 100 and over.

If no values are specified in the array, then the output report will have no age binning.

{
    "Report_HIV_ByAgeAndGender_Collect_Age_Bins_Data": [
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20,
        21,
        22,
        23,
        24,
        25,
        26,
        27,
        28,
        29,
        30,
        31,
        32,
        33,
        34,
        35,
        36,
        37,
        38,
        39,
        40,
        41,
        42,
        43,
        44,
        45,
        46,
        47,
        48,
        49,
        50,
        51,
        52,
        53,
        54,
        55,
        56,
        57,
        58,
        59,
        60,
        61,
        62,
        63,
        64,
        65,
        66,
        67,
        68,
        69,
        70,
        71,
        72,
        73,
        74,
        75,
        76,
        77,
        78,
        79,
        80,
        81,
        82,
        83,
        84,
        85,
        86,
        87,
        88,
        89,
        90,
        91,
        92,
        93,
        94,
        95,
        96,
        97,
        98,
        99
    ]
}

Report_HIV_ByAgeAndGender_Collect_Gender_Data

boolean

0

1

0

Controls whether or not the report is stratified by gender; to enable gender stratification, set to true (1).

{
    "Report_HIV_ByAgeAndGender_Collect_Gender_Data": 1
}

x_Base_Population

float

0

3.40E+38

1

Scale factor for InitialPopulation in the demographics file (see NodeAttributes parameters). If Population_Scale_Type is set to FIXED_SCALING, the initial simulation population is uniformly scaled over the entire area to adjust for historical or future population density.

{
    "x_Base_Population": 0.0001
}

x_Birth

float

0

3.40E+38

1

Scale factor for birth rate, as provided by the demographics file (see NodeAttributes parameters). Enable_Birth must be set to 1.

{
    "x_Birth": 1
}

Relationships and pair formation

The following parameters determine how individuals form relationships, such as sexual behavior, relationship duration, age gaps, and any gender differences in those characteristics.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Coital_Dilution_Factor_2_Partners

float

1.19E-0

1

1

The multiplicative reduction in the coital act rate for all relationship types when an individual has exactly two current partners. Represents coital dilution.

{
    "Coital_Dilution_Factor_2_Partners": 0.5
}

Coital_Dilution_Factor_3_Partners

float

1.19E-0

1

1

The multiplicative reduction in the coital act rate for all relationship types when an individual has exactly three current partners. Represents coital dilution.

{
    "Coital_Dilution_Factor_3_Partners": 0.33
}

Coital_Dilution_Factor_4_Plus_Partners

float

1.19E-0

1

1

The multiplicative reduction in the coital act rate for all relationship types when an individual has exactly three current partners. Represents coital dilution.

{
    "Coital_Dilution_Factor_4_Partners": 0.45
}

Enable_Coital_Dilution

boolean

0

1

1

Controls whether or not coital dilution will occur.

{
    "Enable_Coital_Dilution": 1
}

Min_Days_Between_Adding_Relationships

float

0

365

60

The minimum number of days between adding two consecutive relationships as a means to control concurrency. The constraint does not apply if an individual breaks an existing relationship.

{
    "Min_Days_Between_Adding_Relationships": 1
}

PFA_Burnin_Duration_In_Days

float

1

3.40E+38

365000

The number of days to continue tuning the pair formation rates. After this duration, the rates will remain at the last rate value calculated.

{
    "PFA_Burnin_Duration_In_Days": 5475
}

PFA_Cum_Prob_Selection_Threshold

float

0

1

0.2

This parameter serves to minimize the extent to which relationships with unlikely age gaps are formed. These unlikely relationships could be generated due to lack of diversity in the PFA. Within the algorithm, males pick from amongst the available females by age bin, weighted by the conditional of the joint_probability matrix given the male age bin. If the sum of the probabilities in the female age bins that are not empty is below this threshold, the male will wait till the next update. Setting this parameter to a value near 1 dramatically increases the delay that individuals will experience in seeking relationships. Setting this parameter to 0 disables the feature.

{
    "PFA_Cum_Prob_Selection_Threshold": 0.4
}

Report_HIV_ByAgeAndGender_Add_Concordant_Relationships

boolean

0

1

0

When set to true (1), a ‘concordant’ column for each relationship type, as defined with the Society parameter in the demographics file, is included in the ReportHIVByAgeAndGender.csv output report file. Each ‘concordant’ column will include the number of concordant relationships, where both partners have the same disease status.

{
    "Report_HIV_ByAgeAndGender_Add_Concordant_Relationships": 1
}

Report_HIV_ByAgeAndGender_Add_Relationships

boolean

0

1

0

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_Relationships": 1
}

Sexual_Debut_Age_Female_Weibull_Heterogeneity

float

0

50

20

The inverse shape of the Weibull distribution for female debut age.

{
    "Sexual_Debut_Age_Female_Weibull_Heterogeneity": 0.05
}

Sexual_Debut_Age_Female_Weibull_Scale

float

0

50

16

The scale term of the Weibull distribution for female debut age.

{
    "Sexual_Debut_Age_Female_Weibull_Scale": 15.919654846191
}

Sexual_Debut_Age_Male_Weibull_Heterogeneity

float

0

50

20

The inverse shape of the Weibull distribution for male debut age.

{
    "Sexual_Debut_Age_Male_Weibull_Heterogeneity": 0.05
}

Sexual_Debut_Age_Male_Weibull_Scale

float

0

50

16

The scale term of the Weibull distribution for male debut age.

{
    "Sexual_Debut_Age_Male_Weibull_Scale": 16.946729660034
}

Sexual_Debut_Age_Min

float

0

3.40E+38

13

The minimum age at which individuals become eligible to form sexual relationships.

{
    "Sexual_Debut_Age_Min": 13
}

Sampling

The following parameters determine how a population is sampled in the simulation. While you may want every agent (individual object) to represent a single person, you can often optimize CPU time with without degrading the accuracy of the simulation but having an agent represent multiple people. The sampling rate may be adapted to have a higher or lower sampling rate for particular regions or age groups.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Base_Individual_Sample_Rate

float

0.001

1

1

The base rate of sampling for individuals, equal to the fraction of individuals in each node being sampled. Reducing the sampling rate will reduce the time needed to run simulations. Individual_Sampling_Type must be set to FIXED_SAMPLING or ADAPTED_SAMPLING_BY_IMMUNE_STATE.

{
    "Base_Individual_Sample_Rate": 0.01
}

Immune_Threshold_For_Downsampling

float

0

1

0

The threshold on acquisition immunity at which to apply immunity-dependent downsampling; individuals who are more immune than this this threshold are downsampled. A value of 1 is equivalent to full susceptibility and 0 is equivalent to full immunity. If the acquisition immunity modifier is larger than the threshold, no downsampling occurs. Individual_Sampling_Type must set to ADAPTED_SAMPLING_BY_IMMUNE_STATE.

{
    "Relative_Sample_Rate_Immune": 0.1,
    "Immune_Threshold_For_Downsampling": 0.5,
    "Individual_Sampling_Type": "ADAPTED_SAMPLING_BY_IMMUNE_STATE"
}

Individual_Sampling_Type

enum

NA

NA

TRACK_ALL

The type of individual human sampling to use, which can be used to down sample large populations, certain age groups, or the immune population that does not contribute to transmission. Possible values are:

TRACK_ALL

Each person in the population is tracked as a single Individual object with a sampling weight of 1.

FIXED_SAMPLING

Members of the population are added to the simulation with a probability of Base_Individual_Sample_Rate and sampling weight of 1 / Base_Individual_Sample_Rate. This allows a smaller set of Individual objects to represent the overall population.

ADAPTED_SAMPLING_BY_POPULATION_SIZE

For each node, a maximum number of Individual objects is tracked (set in Max_Node_Population_Samples). If the population is smaller than this number, each person is tracked with a sampling rate of 1; if the population is larger, members of the population are added to the simulation with a probability of Max_Node_Population_Samples / population and sampling weight of population / Max_Node_Population_Samples. This setting is useful for simulations over large geographic areas with large heterogeneities in population density.

ADAPTED_SAMPLING_BY_AGE_GROUP

The population is binned by age and each age bin is sampled at a different rate as defined by Sample_Rate parameters. The setting is useful for diseases in which only infants or children are relevant by allowing full sampling of these age groups while using fewer objects to represent the rest of the population.

ADAPTED_SAMPLING_BY_AGE_GROUP_AND_POP_SIZE

Each node has a maximum number of Individual objects as described in ADAPTED_SAMPLING_BY_POPULATION_SIZE, but when the population grows beyond that threshold, sampling is not done at a fixed rate, but varies by age as described in ADAPTED_SAMPLING_BY_AGE_GROUP.

ADAPTED_SAMPLING_BY_IMMUNE_STATE

Individuals who have acquired immunity are sampled at a lower rate as defined by Relative_Sample_Rate_Immune and Immune_Threshold_For_Downsampling parameters. This converges with regular sampling when those parameters are set to 1 or 0, respectively.

The following example shows how to sampling immune individuals at a lower rate.

{
    "Individual_Sampling_Type": "ADAPTED_SAMPLING_BY_IMMUNE_STATE",
    "Immune_Threshold_For_Downsampling": 0.5,
    "Relative_Sample_Rate_Immune": 0.1
}

The following example shows how to sampling older individuals at a lower rate.

{
    "Individual_Sampling_Type": "ADAPTED_SAMPLING_BY_AGE_GROUP",
    "Sample_Rate_0_18mo": 1,
    "Sample_Rate_10_14": 0.5,
    "Sample_Rate_15_19": 0.3,
    "Sample_Rate_18mo_4yr": 1,
    "Sample_Rate_20_Plus": 0.2,
    "Sample_Rate_5_9": 1,
    "Sample_Rate_Birth": 1
}

Max_Node_Population_Samples

float

1

3.40E+38

30

The maximum number of individuals to track in a node. When the population exceeds this number, the sampling rate will drop according to the value set in Individual_Sampling_Type.

{
    "Individual_Sampling_Type": "ADAPTED_SAMPLING_BY_POPULATION_SIZE",
    "Max_Node_Population_Samples": 100000
}

Relative_Sample_Rate_Immune

float

0.001

1

0.1

The relative sampling rate for people who have acquired immunity through recovery or vaccination. The immune threshold at which to downsample is set by Immune_Threshold_For_Downsampling. If set to 1, this will have no effect, even if the individual’s immunity modifier is below threshold. This can be a useful sanity check while learning this feature. Individual_Sampling_Type must be set to ADAPTED_SAMPLING_BY_IMMUNE_STATE.

{
    "Relative_Sample_Rate_Immune": 0.1,
    "Immune_Threshold_For_Downsampling": 0.8,
    "Individual_Sampling_Type": "ADAPTED_SAMPLING_BY_IMMUNE_STATE"
}

Sample_Rate_0_18mo

float

0.001

1000

1

For age-adapted sampling, the relative sampling rate for infants age 0 to 18 months. Individual_Sampling_Type must be set to ADAPTED_SAMPLING_BY_AGE_GROUP or ADAPTED_SAMPLING_BY_AGE_GROUP_AND_POP_SIZE.

{
    "Sample_Rate_0_18mo": 1
}

Sample_Rate_10_14

float

0.001

1000

1

For age-adapted sampling, the relative sampling rate for children age 10 to 14 years. Individual_Sampling_Type must be set to ADAPTED_SAMPLING_BY_AGE_GROUP or ADAPTED_SAMPLING_BY_AGE_GROUP_AND_POP_SIZE.

{
    "Sample_Rate_10_14": 1
}

Sample_Rate_15_19

float

0.001

1000

1

For age-adapted sampling, the relative sampling rate for adolescents age 15 to 19 years. Individual_Sampling_Type must be set to ADAPTED_SAMPLING_BY_AGE_GROUP or ADAPTED_SAMPLING_BY_AGE_GROUP_AND_POP_SIZE.

{
    "Sample_Rate_15_19": 1
}

Sample_Rate_18mo_4yr

float

0.001

1000

1

For age-adapted sampling, the relative sampling rate for children age 18 months to 4 years. Individual_Sampling_Type must be set to ADAPTED_SAMPLING_BY_AGE_GROUP or ADAPTED_SAMPLING_BY_AGE_GROUP_AND_POP_SIZE.

{
    "Sample_Rate_18mo_4yr": 1
}

Sample_Rate_20_plus

float

0.001

1000

1

For age-adapted sampling, the relative sampling rate for adults age 20 and older. Individual_Sampling_Type must be set to ADAPTED_SAMPLING_BY_AGE_GROUP or ADAPTED_SAMPLING_BY_AGE_GROUP_AND_POP_SIZE.

{
    "Sample_Rate_20_plus": 1
}

Sample_Rate_5_9

float

0.001

1000

1

For age-adapted sampling, the relative sampling rate for children age 5 to 9 years. Individual_Sampling_Type must be set to ADAPTED_SAMPLING_BY_AGE_GROUP or ADAPTED_SAMPLING_BY_AGE_GROUP_AND_POP_SIZE.

{
    "Sample_Rate_5_9": 1
}

Sample_Rate_Birth

float

0.001

1000

1

For age-adapted sampling, the relative sampling rate for births. Individual_Sampling_Type must be set to ADAPTED_SAMPLING_BY_AGE_GROUP or ADAPTED_SAMPLING_BY_AGE_GROUP_AND_POP_SIZE.

{
    "Sample_Rate_Birth": 1
}

Scalars and multipliers

The following parameters scale or multiply values set in other areas of the configuration file or other input files. This can be especially useful for understanding the sensitivities of disease dynamics to input data without requiring modifications to those base values. For example, one might set x_Birth to a value less than 1 to simulate a lower future birth rate due to increased economic prosperity and available medical technology.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Acute_Stage_Infectivity_Multiplier

float

1

100

26

The multiplier acting on Base_Infectivity to determine the per-act transmission probability of an HIV+ individual during the acute stage.

{
    "Acute_Stage_Infectivity_Multiplier": 3
}

AIDS_Stage_Infectivity_Multiplier

float

1

100

10

The multiplier acting on Base_Infectivity to determine the per-act transmission probability of an HIV+ individual during the AIDS stage.

{
    "AIDS_Stage_Infectivity_Multiplier": 8
}

ART_Viral_Suppression_Multiplier

float

0

1

0.08

Multiplier acting on Base_Infectivity to determine the per-act transmission probability of a virally suppressed HIV+ individual.

{
    "ART_Viral_Suppression_Multiplier": 0.3
}

Birth_Rate_Time_Dependence

enum

NA

NA

NONE

A scale factor for BirthRate that allows it to be altered by time or season. Enable_Birth must be set to true (1). Possible values are:

NONE

Birth rate does not vary by time.

SINUSOIDAL_FUNCTION_OF_TIME

Allows birth rate to be time-dependent, following a sinusoidal shape defined by \(1 + \sin \text{Birth\_Rate\_Sinusoidal\_Forcing\_Amplitude} \times \sin(2 \pi \times (\text{day} - \sin \text{Birth\_Rate\_Sinusoidal\_Forcing\_Phase})/365)\). Set Birth_Rate_Sinusoidal_Forcing_Amplitude and Birth_Rate_Sinusoidal_Forcing_Phase.

ANNUAL_BOXCAR_FUNCTION

Allows birth rate to follow a boxcar function. The scale factor will be equal to 1 except for a single interval in which it is equal to a given constant equal to 1 + Birth_Rate_Boxcar_Forcing_Amplitude. Set Birth_Rate_Boxcar_Forcing_Amplitude, Birth_Rate_Boxcar_Forcing_End_Time, and Birth_Rate_Boxcar_Forcing_Start_Time.

{
    "Enable_Vital_Dynamics": 1,
    "Enable_Birth": 1,
    "Birth_Rate_Time_Dependence": "ANNUAL_BOXCAR_FUNCTION"
}

CD4_At_Death_LogLogistic_Scale

float

1

1000

31.63

The scale parameter of a Weibull distribution that represents the at-death CD4 cell count.

{
    "CD4_At_Death_LogLogistic_Scale": 2.96
}

CD4_Post_Infection_Weibull_Scale

float

1

1000

560.432

The scale parameter of a Weibull distribution that represents the post-acute-infection CD4 cell count.

{
    "CD4_Post_Infection_Weibull_Scale": 550
}

Coital_Dilution_Factor_2_Partners

float

1.19E-0

1

1

The multiplicative reduction in the coital act rate for all relationship types when an individual has exactly two current partners. Represents coital dilution.

{
    "Coital_Dilution_Factor_2_Partners": 0.5
}

Coital_Dilution_Factor_3_Partners

float

1.19E-0

1

1

The multiplicative reduction in the coital act rate for all relationship types when an individual has exactly three current partners. Represents coital dilution.

{
    "Coital_Dilution_Factor_3_Partners": 0.33
}

Coital_Dilution_Factor_4_Plus_Partners

float

1.19E-0

1

1

The multiplicative reduction in the coital act rate for all relationship types when an individual has exactly three current partners. Represents coital dilution.

{
    "Coital_Dilution_Factor_4_Partners": 0.45
}

Condom_Transmission_Blocking_Probability

float

0

1

0.9

The per-act multiplier of the transmission probability when a condom is used.

{
    "Condom_Transmission_Blocking_Probability": 0.99
}

Heterogeneous_Infectiousness_LogNormal_Scale

float

0

10

0

Scale parameter of a log normal distribution that governs an infectiousness multiplier. The multiplier represents heterogeneity in infectivity and adjusts Base_Infectivity.

{
    "Heterogeneous_Infectiousness_LogNormal_Scale": 1
}

HIV_Adult_Survival_Shape_Parameter

float

0.001

1000

2

This parameter determines the shape of the Weibull distribution used to determine age-dependent survival time for individuals infected with HIV.

{
    "HIV_Adult_Survival_Scale_Parameter_Intercept": 21.182,
    "HIV_Adult_Survival_Scale_Parameter_Slope": -0.2717,
    "HIV_Adult_Survival_Shape_Parameter": 2.0,
    "HIV_Age_Max_for_Adult_Age_Dependent_Survival": 50.0
}

Infectivity_Exponential_Baseline

float

0

1

0

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_Baseline": 0.1,
    "Infectivity_Exponential_Delay": 90,
    "Infectivity_Exponential_Rate": 45,
    "Infectivity_Scale_Type": "EXPONENTIAL_FUNCTION_OF_TIME"
}

Male_To_Female_Relative_Infectivity_Multipliers

array of floats

NA

NA

1

An array of scale factors governing the susceptibility of females relative to males, by age. Used with Male_To_Female_Relative_Infectivity_Ages. Scaling is linearly interpolated between ages. The first value is used for individuals younger than the first age in Male_To_Female_Relative_Infectivity_Ages and the last value is used for individuals older than the last age.

{
    "Male_To_Female_Relative_Infectivity_Multipliers": [
        5,
        1,
        0.5
    ]
}

Maternal_Transmission_ART_Multiplier

float

0

1

0.1

The maternal transmission multiplier for on-ART mothers.

{
    "Maternal_Transmission_ART_Multiplier": 0.03
}

Population_Scale_Type

enum

NA

NA

USE_INPUT_FILE

The method to use for scaling the initial population specified in the demographics input file. Possible values are:

USE_INPUT_FILE

Turns off population scaling and uses InitialPopulation in the demographics file (see NodeAttributes parameters).

FIXED_SCALING

Enables Base_Population_Scale_Factor.

{
    "Population_Scale_Type": "FIXED_SCALING"
}

Post_Infection_Acquisition_Multiplier

float

0

1

0

The multiplicative reduction in the probability of reacquiring disease. At the time of recovery, the immunity against acquisition is multiplied by Acquisition_Blocking_Immunity_Decay_Rate x (1 - Post_Infection_Acquisition_Multiplier). Enable_Immunity must be set to 1 (true).

{
    "Enable_Immunity": 1,
    "Enable_Immune_Decay": 1,
    "Post_Infection_Acquisition_Multiplier": 0.9
}

Post_Infection_Mortality_Multiplier

float

0

1

0

The multiplicative reduction in the probability of dying from infection after getting reinfected. At the time of recovery, the immunity against mortality is multiplied by Mortality_Blocking_Immunity_Decay_Rate x (1 - Post_Infection_Mortality_Multiplier). Enable_Immunity must be set to 1 (true).

{
    "Enable_Immunity": 1,
    "Enable_Immune_Decay": 1,
    "Post_Infection_Mortality_Multiplier": 0.5
}

Post_Infection_Transmission_Multiplier

float

0

1

0

The multiplicative reduction in the probability of transmitting infection after getting reinfected. At the time of recovery, the immunity against transmission is multiplied by Transmission_Blocking_Immunity_Decay_Rate x (1 - Post_Infection_Transmission_Multiplier). Enable_Immunity must be set to 1 (true).

{
    "Enable_Immunity": 1,
    "Enable_Immunity_Decay": 1,
    "Post_Infection_Transmission_Multiplier": 0.9
}

STI_Coinfection_Acquisition_Multiplier

float

0

100

10

The per-act HIV acquisition probability multiplier for individuals with the STI coinfection flag.

{
    "STI_Coinfection_Transmission_Multiplier": 13.4,
    "STI_Coinfection_Acquisition_Multiplier": 10
}

STI_Coinfection_Transmission_Multiplier

float

0

100

10

The per-act HIV transmission probability multiplier for individuals with the STI coinfection flag.

{
    "STI_Coinfection_Transmission_Multiplier": 13.4,
    "STI_Coinfection_Acquisition_Multiplier": 10
}

Susceptibility_Scaling_Rate

float

0

3.40282e+38

0

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": "LOG_LINEAR_FUNCTION_OF_TIME",
    "Susceptibility_Scaling_Rate": 1.58
}

Susceptibility_Scaling_Type

enum

NA

NA

CONSTANT_SUSCEPTIBILITY

The effect of time on susceptibility. Possible values are:

  • CONSTANT_SUSCEPTIBILITY

  • LOG_LINEAR_FUNCTION_OF_TIME

{
    "Susceptibility_Scaling_Type": "CONSTANT_SUSCEPTIBILITY"
}

x_Air_Migration

float

0

3.40E+38

1

Scale factor for the rate of migration by air, as provided by the migration file. Enable_Air_Migration must be set to 1.

{
    "Scale_Factor_Air_Migration": 1
}

x_Base_Population

float

0

3.40E+38

1

Scale factor for InitialPopulation in the demographics file (see NodeAttributes parameters). If Population_Scale_Type is set to FIXED_SCALING, the initial simulation population is uniformly scaled over the entire area to adjust for historical or future population density.

{
    "x_Base_Population": 0.0001
}

x_Birth

float

0

3.40E+38

1

Scale factor for birth rate, as provided by the demographics file (see NodeAttributes parameters). Enable_Birth must be set to 1.

{
    "x_Birth": 1
}

x_Family_Migration

float

0

3.40E+38

1

Scale factor for the rate of migration by families, as provided by the migration file. Enable_Family_Migration must be set to true (1).

{
    "x_Family_Migration": 1
}

x_Local_Migration

float

0

3.40E+38

1

Scale factor for rate of migration by foot travel, as provided by the migration file. Enable_Local_Migration must be set to 1.

{
    "x_Local_Migration": 1
}

x_Other_Mortality

float

0

3.40E+38

1

Scale factor for mortality from causes other than the disease being simulated. Base mortality is provided by the demographics file (see Complex distributions parameters). Enable_Natural_Mortality must be set to 1.

{
    "x_Other_Mortality": 1
}

x_Regional_Migration

float

0

3.40E+38

1

Scale factor for the rate of migration by road vehicle, as provided by the migration file. Enable_Regional_Migration must be set to 1.

{
    "x_Regional_Migration": 1
}

x_Sea_Migration

float

0

3.40E+38

1

Scale factor for the rate of migration by sea, as provided by the migration file. Enable_Sea_Migration must be set to 1.

{
    "x_Sea_Migration": 1
}

Simulation setup

These parameters determine the basic setup of a simulation including the type of simulation you are running, such as “GENERIC_SIM” or “MALARIA_SIM”, the simulation duration, and the time step duration.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Base_Year

float

1900

2200

2015

The absolute time in years when the simulation begins. This can be combined with CampaignEventByYear to trigger campaign events (Start_Year for events must be after Base_Year).

{
    "Base_Year": 1960
}

Config_Name

string

NA

NA

UNINITIALIZED STRING

The optional, user-supplied title naming a configuration file.

{
    "Config_Name": "My_First_Config"
}

Custom_Coordinator_Events

array of strings

NA

NA

NA

The list of valid, user-defined events for Event Coordinators that will be included in the campaign. Any event used in the campaign must either be one of the built-in events or in this list.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

{
    "Custom_Coordinator_Events": [
        "Coordinator_Event_1",
        "Coordinator_Event_2",
        "Coordinator_Event_3"
    ]
}

Custom_Individual_Events

array of strings

NA

NA

NA

The list of valid, user-defined events that will be included in the campaign. Any event used in the campaign must either be one of the built-in events or in this list.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

{
    "Custom_Individual_Events": [
        "Individual_Event_1",
        "Individual_Event_2",
        "Individual_Event_3"
    ]
}

Custom_Node_Events

array of strings

NA

NA

NA

The list of valid, user-defined events for nodes that will be included in the campaign. Any event used in the campaign must either be one of the built-in events or in this list.

Note: This configuration parameter is currently in beta release and has not yet been fully tested.

{
    "Custom_Node_Events": [
        "Node_Event_1",
        "Node_Event_2",
        "Node_Event_3"
    ]
}

Enable_Interventions

boolean

0

1

0

Controls whether or not campaign interventions will be used in the simulation. Set Campaign_Filename to the path of the file that contains the campaign interventions.

{
    "Enable_Interventions": 1,
    "Campaign_Filename": "campaign.json"
}

Enable_Random_Generator_From_Serialized_Population

boolean

0

1

0

Determines if the random number generator(s) should be extracted from a serialized population file. Enabling this will start a simulation from this file with the exact same random number stream and location in that stream as when the file was serialized.

{
    "Run_Number": 12,
    "Random_Number_Generator_Type": "USE_AES_COUNTER",
    "Random_Number_Generator_Policy": "ONE_PER_NODE",
    "Enable_Random_Generator_From_Serialized_Population": 1
}

Enable_Skipping

boolean

0

1

0

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. Infectivity_Scale_Type must be set to CONSTANT_INFECTIVITY.

{
    "Exposure_Skipping": 1
}

Enable_Termination_On_Zero_Total_Infectivity

boolean

0

1

0

Controls whether or not the simulation should be ended when total infectivity falls to zero. Supported only in single-node simulations.

{
    "Enable_Termination_On_Zero_Total_Infectivity": 1,
    "Minimum_End_Time": 3650
}

Listed_Events

array of strings

NA

NA

[]

The list of valid, user-defined events that will be included in the campaign. Any event used in the campaign must either be one of the built-in events or in this list.

{
    "Listed_Events": [
        "Vaccinated",
        "VaccineExpired"
    ]
}

Memory_Usage_Halting_Threshold_Working_Set_MB

integer

0

1.00E+06

8000

The maximum size (in MB) of working set memory before the system throws an exception and halts.

{
    "Memory_Usage_Halting_Threshold_Working_Set_MB": 4000
}

Memory_Usage_Warning_Threshold_Working_Set_MB

integer

0

1.00E+06

7000

The maximum size (in MB) of working set memory before memory usage statistics are written to the log regardless of log level.

{
    "Memory_Usage_Warning_Threshold_Working_Set_MB": 3500
}

Node_Grid_Size

float

0.00416

90

0.004167

The spatial resolution indicating the node grid size for a simulation in degrees.

{
    "Node_Grid_Size": 0.042
}

Random_Number_Generator_Policy

enum

NA

NA

ONE_PER_CORE

The policy that determines if random numbers are generated for objects in a simulation on a per-core or per-node basis. The following values are available:

ONE_PER_CORE

A random number generator (RNG) is created for each computing core running a simulation. When running a simulation on a single core, there will be only one RNG. If running the single simulation on multiple cores, each core will have its own RNG. The RNGs on the different cores start out such that they will not generate the same stream of random numbers. Prior to EMOD 2.19, all simulations used this policy.

ONE_PER_NODE

An RNG is created for each geographic node in the simulation. The advantages of this policy are that 1) an event that causes a random number to be drawn in one node does not cause things to change in another node and 2) changing a simulation from single core to multi-core will not change the results. The RNGs on the different nodesstart out such that they will not generate the same stream of random numbers.

{
    "Run_Number": 15,
    "Random_Number_Generator_Type": "USE_AES_COUNTER",
    "Random_Number_Generator_Policy": "ONE_PER_NODE"
}

Random_Number_Generator_Type

enum

NA

NA

USE_PSEUDO_DES

The type of random number generator to use for objects in a simulation. Must set the RNG seed in Run_Number. The following values are available:

USE_PSEUDO_DES

Based on Numerical Recipes in C. The Art of Scientific Computing, 2nd ed. Press, William H. et. al, 1992. Prior to EMOD 2.19, this was the only generator available.

USE_LINEAR_CONGRUENTIAL

Based on The Structure of Linear Congruential Sequences, Marsaglia, George, 1972.

USE_AES_COUNTER

Based on AES in CTR Mode encryption as implemented in Intel (R) Advanced Encryption Standard (AES) New Instruction Set.

{
    "Run_Number": 15,
    "Random_Number_Generator_Type": "USE_LINEAR_CONGRUENTIAL",
    "Random_Number_Generator_Policy": "ONE_PER_NODE",
    "Enable_Random_Generator_From_Serialized_Population": 1
}

Run_Number

integer

0

65535

1

Sets the random number seed used with Random_Number_Generator_Type and Random_Number_Generator_Policy to assign random numbers to objects in a simulation.

{
    "Run_Number": 15,
    "Random_Number_Generator_Type": "USE_PSEUDO_DES",
    "Random_Number_Generator_Policy": "ONE_PER_NODE",
    "Enable_Random_Generator_From_Serialized_Population": 1
}

Serialization_Times

array of floats

0

The list of times at which to save the serialized state to file. 0 indicates the initial state before simulation, n indicates the time to serialize in terms of start time and step size, and will be rounded up to the nearest time step. The serialized population files can then be loaded at the beginning of a simulation using Serialized_Population_Filenames and Serialized_Population_Path.

{
    "Serialization_Type": "TIME",
    "Serialization_Times": [
        40.5,
        81
    ]
}

Serialization_Time_Steps

array of integers

0

2.15E+09

The list of time steps after which to save the serialized state to file. 0 (zero) indicates the initial state before simulation, n indicates after the nth time step. Serialization_Type must be set to TIMESTEP. The serialized population files can then be loaded at the beginning of a simulation using Serialized_Population_Filenames and Serialized_Population_Path.

{
    "Serialization_Type": "TIMESTEP",
    "Serialization_Time_Steps": [
        0,
        10
    ]
}

Serialization_Type

enum

NA

NA

NONE

The type of serialization to perform. Serialization saves the population state at particular times so you can start from that state in other simulations. Accepted values are:

NONE

No serialization.

TIME

Use the definition from Serialization_Times.

TIMESTEP

Use the definition from Serialization_Timestep.

{
    "Serialization_Times": [
        365,
        3650
    ],
    "Serialization_Type": "TIMSTEP"
}

j

{}

Serialized_Population_Filenames

array of strings

NA

NA

NA

An array of filenames with serialized population data. The number of filenames must match the number of cores used for the simulation. The files must be in .dtk format. Serialized population files are created using Serialization_Time_Steps.

{
    "Serialized_Population_Filenames": [
        "state-00010.dtk"
    ]
}

Serialized_Population_Path

string

NA

NA

.

The root path for the serialized population files. Serialized population files are created using Serialization_Time_Steps.

{
    "Serialized_Population_Path": "../00_Generic_Version_1_save/output"
}

Simulation_Duration

float

0

1000000

1

The elapsed time (in days) from the start to the end of a simulation.

{
    "Simulation_Duration": 7300
}

Simulation_Timestep

float

0

1000000

1

The duration of a simulation time step, in days.

{
    "Simulation_Timestep": 1
}

Simulation_Type

enum

NA

NA

GENERIC_SIM

The type of disease being simulated. Possible IDM-supported values are:

  • GENERIC_SIM

  • VECTOR_SIM

  • MALARIA_SIM

  • TBHIV_SIM

  • STI_SIM

  • HIV_SIM

  • ENVIRONMENTAL_SIM

  • TYPHOID_SIM

{
    "Simulation_Type": "STI_SIM"
}

Start_Time

float

0

1000000

1

The time, in days, when the simulation begins. This time is used to identify the starting values of the temporal input data, such as specifying which day’s climate values should be used for the first day of the simulation.

Note

The Start_Day of campaign events is in absolute time, so time relative to the beginning of the simulation depends on this parameter.

{
    "Start_Time": 365
}

Symptoms and diagnosis

The following parameters determine the characteristics of HIV diagnosis and HIV/AIDS symptoms, such as CD4 counts at various times in the progression of the disease.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

CD4_At_Death_LogLogistic_Scale

float

1

1000

31.63

The scale parameter of a Weibull distribution that represents the at-death CD4 cell count.

{
    "CD4_At_Death_LogLogistic_Scale": 2.96
}

CD4_Post_Infection_Weibull_Heterogeneity

float

0

100

0.275642

The inverse shape parameter of a Weibull distribution that represents the post-acute-infection CD4 cell count.

{
    "CD4_Post_Infection_Weibull_Heterogeneity": 0
}

CD4_Post_Infection_Weibull_Scale

float

1

1000

560.432

The scale parameter of a Weibull distribution that represents the post-acute-infection CD4 cell count.

{
    "CD4_Post_Infection_Weibull_Scale": 550
}

Days_Between_Symptomatic_And_Death_Weibull_Heterogeneity

float

0.1

10

1

The time between the onset of AIDS symptoms and death is sampled from a Weibull distribution; this parameter governs the heterogeneity (inverse shape) of the Weibull.

{
    "Days_Between_Symptomatic_And_Death_Weibull_Heterogeneity": 0.5
}

Days_Between_Symptomatic_And_Death_Weibull_Scale

float

1

3650

183

The time between the onset of AIDS symptoms and death is sampled from a Weibull distribution; this parameter governs the scale of the Weibull.

{
    "Days_Between_Symptomatic_And_Death_Weibull_Scale": 618.3
}

Weibull distributions

The following parameters use a Weibull distribution.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

CD4_At_Death_LogLogistic_Heterogeneity

float

0

100

0

The inverse shape parameter of a Weibull distribution that represents the at-death CD4 cell count.

{
    "CD4_At_Death_LogLogistic_Heterogeneity": 0.7
}

CD4_At_Death_LogLogistic_Scale

float

1

1000

31.63

The scale parameter of a Weibull distribution that represents the at-death CD4 cell count.

{
    "CD4_At_Death_LogLogistic_Scale": 2.96
}

CD4_Post_Infection_Weibull_Heterogeneity

float

0

100

0.275642

The inverse shape parameter of a Weibull distribution that represents the post-acute-infection CD4 cell count.

{
    "CD4_Post_Infection_Weibull_Heterogeneity": 0
}

CD4_Post_Infection_Weibull_Scale

float

1

1000

560.432

The scale parameter of a Weibull distribution that represents the post-acute-infection CD4 cell count.

{
    "CD4_Post_Infection_Weibull_Scale": 550
}

Days_Between_Symptomatic_And_Death_Weibull_Heterogeneity

float

0.1

10

1

The time between the onset of AIDS symptoms and death is sampled from a Weibull distribution; this parameter governs the heterogeneity (inverse shape) of the Weibull.

{
    "Days_Between_Symptomatic_And_Death_Weibull_Heterogeneity": 0.5
}

Days_Between_Symptomatic_And_Death_Weibull_Scale

float

1

3650

183

The time between the onset of AIDS symptoms and death is sampled from a Weibull distribution; this parameter governs the scale of the Weibull.

{
    "Days_Between_Symptomatic_And_Death_Weibull_Scale": 618.3
}

HIV_Adult_Survival_Scale_Parameter_Intercept

float

0.001

1000

21.182

This parameter determines the intercept of the scale parameter, ?, for the Weibull distribution used to determine HIV survival time.

Survival time with untreated HIV infection depends on the age of the individual at the time of infection, and is drawn from a Weibull distribution with shape parameter (see HIV_Adult_Survival_Shape_Parameter) and scale parameter, ?. The scale parameter is allowed to vary linearly with age as follows:

\(\lambda\) = HIV_Adult_Survival_Scale_Parameter_Intercept + HIV_Adult_Survival_Scale_ Parameter_Slope * Age (in years).

{
    "HIV_Adult_Survival_Scale_Parameter_Intercept": 21.182,
    "HIV_Adult_Survival_Scale_Parameter_Slope": -0.2717,
    "HIV_Adult_Survival_Shape_Parameter": 2.0,
    "HIV_Age_Max_for_Adult_Age_Dependent_Survival": 50.0
}

HIV_Adult_Survival_Scale_Parameter_Slope

float

-1000

1000

-0.2717

This parameter determines the slope of the scale parameter, ?, for the Weibull distribution used to determine HIV survival time.

Survival time with untreated HIV infection depends on the age of the individual at the time of infection, and is drawn from a Weibull distribution with shape parameter (see HIV_Adult_Survival_Shape_Parameter) and scale parameter, ?. The scale parameter is allowed to vary linearly with age as follows:

\(\lambda\) = HIV_Adult_Survival_Scale_Parameter_Intercept + HIV_Adult_Survival_Scale_ Parameter_Slope * Age (in years).

Because survival time with HIV becomes shorter with increasing age, HIV_Adult_Survival_Scale_ Parameter_Slope should be set to a negative number.

{
    "HIV_Adult_Survival_Scale_Parameter_Intercept": 21.182,
    "HIV_Adult_Survival_Scale_Parameter_Slope": -0.2717,
    "HIV_Adult_Survival_Shape_Parameter": 2.0,
    "HIV_Age_Max_for_Adult_Age_Dependent_Survival": 50.0
}

HIV_Adult_Survival_Shape_Parameter

float

0.001

1000

2

This parameter determines the shape of the Weibull distribution used to determine age-dependent survival time for individuals infected with HIV.

{
    "HIV_Adult_Survival_Scale_Parameter_Intercept": 21.182,
    "HIV_Adult_Survival_Scale_Parameter_Slope": -0.2717,
    "HIV_Adult_Survival_Shape_Parameter": 2.0,
    "HIV_Age_Max_for_Adult_Age_Dependent_Survival": 50.0
}

HIV_Child_Survival_Slow_Progressor_Scale

float

0.001

1000

16

The Weibull scale parameter describing the distribution of HIV survival for children who are slower progressors.

{
    "HIV_Child_Survival_Slow_Progressor_Scale": 16.0,
    "HIV_Child_Survival_Slow_Progressor_Shape": 2.7
}

HIV_Child_Survival_Slow_Progressor_Shape

float

0.001

1000

2.7

The Weibull shape parameter describing the distribution of HIV survival for children who are slower progressors.

{
    "HIV_Child_Survival_Slow_Progressor_Scale": 16.0,
    "HIV_Child_Survival_Slow_Progressor_Shape": 2.7
}

Sexual_Debut_Age_Female_Weibull_Heterogeneity

float

0

50

20

The inverse shape of the Weibull distribution for female debut age.

{
    "Sexual_Debut_Age_Female_Weibull_Heterogeneity": 0.05
}

Sexual_Debut_Age_Female_Weibull_Scale

float

0

50

16

The scale term of the Weibull distribution for female debut age.

{
    "Sexual_Debut_Age_Female_Weibull_Scale": 15.919654846191
}

Sexual_Debut_Age_Male_Weibull_Heterogeneity

float

0

50

20

The inverse shape of the Weibull distribution for male debut age.

{
    "Sexual_Debut_Age_Male_Weibull_Heterogeneity": 0.05
}

Sexual_Debut_Age_Male_Weibull_Scale

float

0

50

16

The scale term of the Weibull distribution for male debut age.

{
    "Sexual_Debut_Age_Male_Weibull_Scale": 16.946729660034
}

Sexual_Debut_Age_Min

float

0

3.40E+38

13

The minimum age at which individuals become eligible to form sexual relationships.

{
    "Sexual_Debut_Age_Min": 13
}