Skip to content

SqlReport

The SqlReport report outputs individual-level epidemiological data for any EMOD simulation type. Because of the quantity and complexity of the data, the report output is a multi-table SQLite relational database (see DB Browser for SQLite for more information). Use the configuration parameters to manage the size of the database.

SqlReportMalaria extends this report with malaria-specific health and infection data. See software-report-sql-malaria.

Configuration

To generate this report, configure the following parameters in the custom_reports.json file:

Parameter Data type Min Max Default Description
Include_Health_Table boolean NA NA 1 A true value (1) includes the Health table which has data for each time step for the health of an individual.
Include_Infection_Data_Table boolean NA NA 1 A true value (1) includes the InfectionData table which has data for each time step for each active infection.
Include_Individual_Properties boolean NA NA 0 Include a table with all the possible IPs and include the IP data for each person in the Health table.
Start_Day float 0 3.40E+38 0 The day to start collecting data.
End_Day float 0 3.40E+38 3.40E+38 The day to stop collecting data.
{
    "Reports": [
        {
            "class": "SqlReport",
            "Include_Health_Table": 1,
            "Include_Infection_Data_Table": 1,
            "Start_Day": 100,
            "End_Day": 900
        }
    ],
    "Use_Defaults": 1
}

SQL database and table structures

Because the output is a relational database, most tables have a primary key that is a combination of RunNumber and another value. Because RunNumber is part of the primary key, data from multiple simulation runs can be combined in a single database.

Humans table

The Humans table records all individuals in the simulation. It contains one row per individual and has a one-to-many relationship with the Infections and Health tables.

Parameter Data type Description
RunNumber integer The seed to the random number generator from the Run_Number parameter.
HumanID integer The unique ID of the individual in the simulation.
Gender text The gender of the individual. Possible values are M or F.
HomeNodeID integer The external ID (NodeID in demographics) of the individual's home node.
InitialAgeDays float The age of the individual in days when they entered the simulation.
SimTimeAdded float The simulation time when the individual was added.

Health table

The Health table records the health state of each individual at each time step. There is one row per individual per time step. This table has a many-to-one relationship with the Humans table. Omitted when Include_Health_Table is false. When Include_Individual_Properties is true, one additional column is added for each individual property key, containing the ID of the individual's current value for that IP (cross-referenced via the IndividualProperties table).

Parameter Data type Description
RunNumber integer The seed to the random number generator from the Run_Number parameter.
HumanID integer The unique ID of the individual in the simulation.
NodeID integer The external ID of the node the individual is in at this time step.
SimTime float The simulation time when this data was collected.
Infectiousness float The individual's infectiousness to vectors at this time step.

Infections table

The Infections table records each infection that occurs in the simulation. There is one row per infection. This table has a many-to-one relationship with the Humans table.

Parameter Data type Description
RunNumber integer The seed to the random number generator from the Run_Number parameter.
InfectionID integer The unique ID of the infection in the simulation.
HumanID integer The unique ID of the individual who acquired the infection.
SimTimeCreated float The simulation time when the infection was created.

InfectionData table

The InfectionData table records data for each active infection at each time step. There is one row per infection per time step. This table has a many-to-one relationship with the Infections table. Omitted when Include_Infection_Data_Table is false.

Parameter Data type Description
RunNumber integer The seed to the random number generator from the Run_Number parameter.
InfectionID integer The unique ID of the infection in the simulation.
SimTime float The simulation time when this data was collected.

IndividualProperties table

A lookup table mapping individual property key-value IDs to their text names. Only present when Include_Individual_Properties is true.

Parameter Data type Description
RunNumber integer The seed to the random number generator from the Run_Number parameter.
KeyValueID integer The unique ID of the IP key-value pair.
Key text The name of the individual property key.
Value text The value of the individual property.