reporters
InsetChart
Bases: InsetChart
The inset chart (InsetChart.json) is an output report that is automatically generated with every simulation. It contains simulation-wide averages, one per time step, for a wide number of data channels. The channels are fully specified by the simulation type and cannot be altered without making changes to the EMOD source code. Python or other tools can be used to create charts out of the information contained in the file.
For more information, see the report documentation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reporters_object
|
Reporters
|
The reporters object given by the emodpy |
required |
has_ip
|
list[str]
|
A channel is added to InsetChart for each value of each
IndividualProperty key provided. The channel name will be HasIP_ |
None
|
has_interventions
|
list[str]
|
A channel is added to InsetChart for each intervention name provided.
The channel name will be Has_ |
None
|
include_pregnancies
|
bool
|
If True, channels are added about pregnancies and possible mothers. Default: False |
False
|
include_coital_acts
|
bool
|
If True, include channels about the number of coital acts per relationship type per timestep and those using condoms. Default: True |
True
|
event_channels_list
|
list[str]
|
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. See the Event List for events already used by EMOD or add custom events you're using in campaigns. Default: None |
None
|
Source code in emodpy_hiv/reporters/reporters.py
ReportCoitalActs
Bases: ConfigReporter
The coital act report (RelationshipConsummated.csv) provides detailed information about each coital act that occurs during the simulation. The report includes unique identifiers for each coital act and relationship; the relationship type, number of acts, whether a condom was used, and whether transmission occurred; and detailed information about each participant, including age, gender, infection status, circumcision status, co-infection status, and treatment status. Each participant in a relationship is referred to as either participant “A” or participant “B”.
One row of data is returned per coital act, and results are ordered on a per-relationship basis. Note: if a person is engaged in coital acts in multiple relationships during a time step, the order of those acts is unknown, only in which relationship they occurred. Additionally, if a person gets infected during a time step, they cannot re-transmit that infection during the same time step. The report does record during which coital act transmission occurred.
If an uninfected person has coital acts with multiple infected partners during the same time step, all acts with the possibility of transmission are randomly ordered, so that the person has an equal chance of getting infected from any one of their partners. The probability of transmission from any one of these coital acts is still determined by the simulation parameters (number of acts, acquisition multipliers, etc.)
For more information, please see the report documentation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reporters_object
|
Reporters
|
The reporters object given by the emodpy. |
required |
relationship_type
|
RelationshipType
|
A RelationshipType enum indicating the type of relationship the coital act has to occur in to be reported. Options are TRANSITORY, INFORMAL, MARITAL, and COMMERCIAL. Leave empty or None to include all relationship types. Default: None Note: RelationshipType.COUNT is not a valid parameter for this report. |
None
|
has_intervention_with_name
|
list[str]
|
An list of intervention names where a column is added for each name. The column will have a value of 1 if the person has the intervention and 0 if they do not. The intervention_name parameter in the campaigns are the available values for this parameter. Default: None |
None
|
individual_properties
|
list[str]
|
A list of strings individual property (IP) keys that will be included in the report as columns. Each person will have the value of that key in their row. For more information, see the model properties documentation. Default: None |
None
|
partners_with_ip_key_value
|
list[str]
|
A list of strings in format of "Key:Value", denoting specific IndividualProperty key:value pair. For each IP Key:Value string in the list, two columns will be added - one for each partner indicating the number of their partners for whom that IP Key:Value applies. For more information, see the model properties documentation. Default: None |
None
|
report_filter
|
ReportFilter
|
Common report filtering parameters. To be included into the report, only one of the partners needs to satisfy the field. Valid filtering parameters for this report are:
|
None
|
Source code in emodpy_hiv/reporters/reporters.py
353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 | |
ReportEventRecorder
Bases: ConfigReporter
The health events and interventions report (ReportEventRecorder.csv) provides information on each individual’s demographics and health status at the time of an event. Additionally, it is possible to see the value of specific IndividualProperties, as assigned in the demographics file.
For more information, see the report documentation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reporters_object
|
Reporters
|
The reporters object given by the emodpy. |
required |
event_list
|
list[str]
|
The list of individual-level events to include in the output report. See the Event List for events already used by EMOD, or add custom events you're using in campaigns. |
required |
individual_properties
|
list[str]
|
A list of strings individual property (IP) keys that will be included in the report as applicable to each partner at the start of the relationship. One column will be added to the report for each partner, for each key in the list. For more information, see the Model Properties documentation. Default: None |
None
|
property_change_ip_to_record
|
str
|
IndividualProperty key string for which recorder will add the PropertyChange event to the list of events that the report is listening to. However, it will only record the events where the property changed the value of this given key. For more information, see the Model Properties documentation. Default: None |
None
|
report_filter
|
ReportFilter
|
Common report filtering parameters. Valid filtering parameters for this report are:
|
None
|
Source code in emodpy_hiv/reporters/reporters.py
ReportHIVART
Bases: ConfigReporter
The ART initiation and discontinuation report (ReportHIVART.csv) provides information on individuals at time of ART initiation and discontinuation, including ID, age, gender, and CD4 count at ART initiation.
For more information, see the report documentation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reporters_object
|
Reporters
|
The reporters object given by the emodpy |
required |
Source code in emodpy_hiv/reporters/reporters.py
ReportHIVByAgeAndGender
Bases: ConfigReporter
The age- and gender-stratified HIV report (ReportHIVByAgeAndGender.csv) provides a detailed set of HIV-related statistics, with numerous ways to customize and stratify the output. The report format facilitates further analysis using a pivot table.
Some results, such as population size or number infected, are reported as single 'snapshots' at the end of the reporting period. Other values, such as deaths or new infections, are aggregated for the entire reporting period.
For more information, see the report documentation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reporters_object
|
Reporters
|
The reporters object given by the emodpy. |
required |
collect_gender_data
|
bool
|
When True, the 'Gender' column will be added where 0 is for males and 1 for females. Default: False |
False
|
collect_age_bins_data
|
list[float]
|
A list of age bins (values in years) used to stratify the report by age. When this parameter is used, the 'Age' column will be added and the reports and will have a row for each bin value. The row will include all individuals whose age is between the value in the bin (inclusive) and the next bin's value (exclusive). The values between the bins cannot be equal and must be listed in ascending order. Leave the array empty to not stratify the report by age. The maximum number of age bins is 100. Note: setting this will multiply the number of rows in the output report by the number of bins. |
None
|
collect_circumcision_data
|
bool
|
When True, the 'IsCircumcised' column is included in the output report. The report data will be stratified by those who have the MaleCircumcision intervention (1) and those who do not (0). Note: setting this to True will double the number of rows for males in the output report. Default: False |
False
|
collect_hiv_data
|
bool
|
When True, the 'HasHIV' column is included in the output report. The report data will be stratified by those individuals who have HIV (1) and those who do not (0). Cannot be used with Report_HIV_ByAgeAndGender_Collect_HIV_Stage_Data. Note: setting this to True doubles the number of rows in the output report. Default: False |
False
|
collect_hiv_stage_data
|
bool
|
When True, the 'HIV_Stage' column is included in the output report. The report data will be stratified by HIV Infection Stage (NOT_INFECTED, ACUTE, LATENT, AIDS, ON_ART). Cannot be used with collect_hiv_data or collect_on_art_data. Note: setting this to True multiplies the number of rows in the output report by five. Default: False |
False
|
collect_on_art_data
|
bool
|
When set to True, the 'On_ART' column is included in the output report. The report data will be stratified by those individuals who are on ART (1) and those who are not (0). Cannot be used with collect_hiv_stage_data. Note: setting this to True doubles the number of rows in the output report. Default: False |
False
|
collect_ip_data
|
list[str]
|
A list of individual property (IP) keys used to stratify the report. A column 'IP_Key:X' will be added to the report for each IP listed, and a row for each possible IP Key:Value pair. For more information, see Model Properties. Default: None |
None
|
collect_intervention_data
|
list[str]
|
A list of interventions used to stratify the report. This allows for reporting on a subset (or all) of the interventions that an individual has been on, of those listed in the intervention_name campaign parameter. Those with the intervention will have a 1 in the column and those without will have 0. Note: this can only be used with interventions that remain with an individual for a period of time, such as VMMC, vaccine/PrEP, or those with a delay state in the cascade of care. Default: None |
None
|
collect_targeting_config_data
|
list[AbstractTargetingConfig]
|
Creates a 'MeetsTargetingConfig_X' column for each targeting config defined in the list where X is the position of the targeting config in the list. In cell, value 1 indicates that the individuals match the targeting config and 0 indicating that they do not. Default: None |
None
|
add_transmitters
|
bool
|
When True, the 'Transmitters' column will be added to the report. It indicates the total number of the individuals in that row who transmitted HIV during this reporting period. This may not add up to the number of new infections in the reporting period if any of the new infections were due to the OutbreakIndividual intervention or maternal transmission. Default: False |
False
|
stratify_infected_by_cd4
|
bool
|
When True, the number of infected individuals will be segregated into four columns based on CD4 count ('Infected CD4 Under 200 (Not On ART)', 'Infected CD4 200 to 349 (Not On ART)', 'Infected CD4 350 to 499 (Not On ART)', 'Infected CD4 500 Plus (Not On ART)') Note: this creates additional polling columns, but not more stratification rows. Default: False |
False
|
event_counter_list
|
list[str]
|
A list of individual-level events. A column will be added to the report for each event listed, showing the number of times the event occurred during the reporting for the people in the row. To be counted, the individual must qualify for that row at the time the event occurred, not necessarily at the end of the reporting period (the individual themselves might end up being counted in a different row). See the Event List for events already used by EMOD, or add custom events you're using in campaigns. Default: None |
None
|
add_relationships
|
bool
|
When True, the report will contain data on the population currently in a relationship and ever in a relationship for each relationship type (TRANSITORY, INFORMAL, MARITAL, and COMMERCIAL), eight columns total. Additionally, columns containing a sum of individuals in two or more partnerships (Has Concurrent Partners) and a sum of the lifetime number of relationships (Lifetime Partners) will be included. Default: False |
False
|
add_concordant_relationships
|
bool
|
When True, a Concordant column for each relationship type (TRANSITORY, INFORMAL, MARITAL, and COMMERCIAL) is included in the output report. These contain totals for each relationship of each type where both partners have the same HIV status. Default: False |
False
|
reporting_period
|
float
|
The number of days between records in output report. Note: Due to an old design choice, the reporting_period for his report is halved within EMOD’s code. To keep it consistent with other reporters that use reporting periods, emodpy will automatically multiply this value by 2 before passing it to EMOD. This means the reporting_period you enter here will correctly represent the actual time between report entries, rather than being halved. Minimum value: 15 Maximum value: 182,500 Default value: 182.5 (every 6 months) |
182.5
|
use_old_format
|
bool
|
When True, data collection is offset by one time step: the first entry includes an extra time step, and subsequent entries occur at reporting_period but remain offset. This is a superseded functionality. When set to False, data is collected as expected - data is collected for and reported every reporting_period. Default: False |
False
|
report_filter
|
ReportFilter
|
Common report filtering parameters. Valid filtering parameters for this report are:
|
None
|
Source code in emodpy_hiv/reporters/reporters.py
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 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 | |
ReportHIVInfection
Bases: ConfigReporter
The HIV disease progression report (ReportHIVInfection.csv) provides information on each individual’s disease state at each time step, including age, gender, CD4 count, survival prognosis, ART status, and factors impacting transmission and acquisition.
For more information, see the report documentation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reporters_object
|
Reporters
|
The reporters object given by the emodpy |
required |
report_filter
|
ReportFilter
|
Common report filtering parameters. Valid filtering parameters for this report are:
|
None
|
Source code in emodpy_hiv/reporters/reporters.py
ReportHIVMortality
Bases: ConfigReporter
The HIV mortality report (HIVMortality.csv) provides information about individuals at the time of their death, including disease status, CD4 count, medical history, and relationship history.
For more information, see the report documentation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reporters_object
|
Reporters
|
The reporters object given by the emodpy. |
required |
Source code in emodpy_hiv/reporters/reporters.py
ReportPfaQueues
Bases: BuiltInReporter
The pair forming algorithm (PFA) queues report (ReportPfaQueues.csv) provides data to analyze the relationship formation process and evaluate who is left unpaired at each stage.
The report includes several key columns: Time, which represents the simulation day when the data is recorded, and
NodeID, which specifies the external ID of the simulation node. Additionally, the columns labeled
Additional documentation for this report is in development. See ReportPfaQueues for the current status.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reporters_object
|
Reporters
|
The reporters object given by the emodpy. |
required |
Source code in emodpy_hiv/reporters/reporters.py
ReportRelationshipCensus
Bases: BuiltInReporter
The relationship census report (ReportRelationshipCensus.csv) is a CSV-formatted report that extracts relationship numbers for each person during each taking of the census. The census is a one-day event collecting data for that person as of that day.
For more information, see the report documentation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reporters_object
|
Reporters
|
The reporters object given by the emodpy. |
required |
report_filename
|
str
|
The name for the file of the generated report including file extension |
'ReportRelationshipCensus.csv'
|
reporting_interval_years
|
float
|
Number of years between census-taking. |
1
|
report_filter
|
ReportFilter
|
Common report filtering parameters. Valid filtering parameters for this report are:
|
None
|
Source code in emodpy_hiv/reporters/reporters.py
ReportRelationshipEnd
Bases: ConfigReporter
The relationship dissolution report (RelationshipEnd.csv) provides detailed information about each relationship and its members, evaluated at the time of relationship dissolution. The report includes the relationship id, relationship type, start time, scheduled end time, actual end time (which may differ from the scheduled end time, for instance, due to the death of a partner), and information about each participant. The relationship id is unique to each relationship and is the same across all reports that reference relationships: ReportRelationshipStart, ReportTransmission, and the ReportCoitalActs.
For more information, please see the report documentation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reporters_object
|
Reporters
|
The reporters object given by the emodpy |
required |
Source code in emodpy_hiv/reporters/reporters.py
ReportRelationshipMigrationTracking
Bases: BuiltInReporter
The relationship migration tracking report (ReportRelationshipMigrationTracking.csv) provides information about the relationships a person has when they are migrating. It will give information when they are leaving and entering a node. When leaving a node, the information will be about the status of the relationships just before they leave. When entering the new node, the information will be about the relationships that have been updated. For example, a person could leave with a relationship paused, find their partner in the new node, and get their relationship back to normal. This helps to know about how the status of the relationships have changed—migrated, paused, or terminated.
The person initiating a migration event will first have their relationships listed in the state before migrating starts. If a partner is asked to migrate with them, then that partner’s relationships will also be listed. When the people are immigrating into the new node, the list of relationships that are continuing in the new node will be listed. Any migrated partner should only have the relationship with the partner initiating migration. Their other relationships will have been terminated.
For more information, see the report documentation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reporters_object
|
Reporters
|
The reporters object given by the emodpy. |
required |
report_filter
|
ReportFilter
|
Common report filtering parameters. Valid filtering parameters for this report are:
|
None
|
Source code in emodpy_hiv/reporters/reporters.py
ReportRelationshipStart
Bases: ConfigReporter
The relationship formation report (RelationshipStart.csv) provides information about each relationship and its members, evaluated at the time of relationship formation. The report includes the relationship type, start time, scheduled end time, and detailed information about each participant: ID, gender, age, infection status, circumcision status for males, co-infections, number of relationships (active, recent, lifetime), and individual properties. The male in the relationship is indicated on the report as participant 'A', and the female as participant 'B'.
For more information, see the report documentation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reporters_object
|
Reporters
|
The reporters object given by the emodpy. |
required |
include_hiv_disease_statistics
|
bool
|
When True, the report will include information on CD4 count, viral load, disease stage, HIV positivity, and HIV testing results for each partner at the start of the relationship. Default: False |
True
|
include_other_relationship_statistics
|
bool
|
When True, the report will include information on the number of active and lifetime relationships of each type (TRANSITORY, INFORMAL, MARITAL, and COMMERCIAL) for each partner in the relationship, as well as total relationships in the past six month and total lifetime relationships. Additionally, a bitmask column will indicate which types of concurrent relationships are allowed; these are configured using the Concurrency_Configuration parameter in the demographics, see demographics documentation. Default: False |
True
|
individual_properties
|
list[str]
|
A list of strings individual property (IP) keys that will be included in the report as applicable to each partner at the start of the relationship. One column will be added to the report for each partner, for each key in the list. For more information, see model properties. |
None
|
report_filter
|
ReportFilter
|
Common report filtering parameters. To be included into the report, only one of the partners needs to satisfy the field. Valid filtering parameters for this report are:
|
None
|
Source code in emodpy_hiv/reporters/reporters.py
ReportTransmission
Bases: ConfigReporter
The HIV relationship transmission report (TransmissionReport.csv) provides detailed information about each transmission event and relationship members, evaluated at the time of disease transmission within the relationship. It includes the time/date of transmission and information about the transmitter and recipient, including: age, gender, current and lifetime number of relationships, infection stage, circumcision status for males, co-infections, and disease-specific biomarkers, if applicable.
For more information, see the report documentation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reporters_object
|
Reporters
|
The reporters object given by the emodpy |
required |