Skip to main content

Table 1 Characteristics of modules

From: Modular programming for tuberculosis control, the “AuTuMN” platform

Module

Characteristics

Graphical user interface

Accepts user inputs to determine:

 • Country to be simulated

 • Purpose of simulation

   Uncertainty, optimisation, automatic calibration, scenario analysis

   ▪ Scenarios required (uncertainty or scenario analysis only)

   Saving and loading of previous simulations

 • Compartmental model structure, including optional elaborations

   Multiple health systems differing by quality of care

   Amplification of drug resistance with treatment default

   Mis-assignment of drug resistance status of infecting organism

   Sub-populations and risk groups

   Heterogeneous mixing between population groups

 • Other methodological aspects of run

   Integration method

   Integration time step

   Fitting method of parameters to loaded data

   Epidemiological and economic parameters

 • Outputs required

Spreadsheet reader

Reads data according to country selected in Graphical user interface

Accepts original format of spreadsheets as input (currently all Microsoft Excel™)

Converts data to consistent format (Python dictionary with years as keys and data entries as values)

Spreadsheets read:

 • Data on aggregate TB burden and programmatic response, WHO [45]

 • BCG vaccination coverage, UNICEF/WHO [46]

 • Demographic variables, the World Bank [47]

Data processing

Creates data structures with a format interpretable by the Model modules

 • Combines and reconciles external inputs from Spreadsheet reader with user inputs from GUI

 • Calls Curve fitting module to fit functions to reconciled data structures

 • Derives parameters determined by multiple input parameters

   e.g. for comorbidities leading to an increased progression rate (such as diabetes) the risk group-specific progression rate is calculated by multiplying the age group-specific progression rate by the relative progression rate attributable to the risk factor

Curve fitting

Derives polynomial spline functions to represent parameters (often interventions) scaling over time (See Fig. 3)

 • Fits to input data of dictionaries with keys time (in years) and values parameter values (often intervention coverage as a proportion)

 • Intervention values remain constant into the future from most recent parameter value

   That is, the default behaviour (baseline scenario) is all interventions frozen at this value

Model runner

Creates and runs model objects according to the purpose selected in the Graphical user interface

 • For scenarios, runs baseline model followed by each requested scenario with interventions as requested

 • For uncertainty, iteratively runs model, updating uncertainty parameters between each run

   Currently uses a Metropolis-Hastings algorithm

   Priors are estimated from the distributions of included epidemiological parameters

   Posteriors are estimated from a comparison of outputs to WHO data

 • For automatic calibration (an extension of uncertainty), iteratively runs model, updates model parameters, starting populations and other epidemiological parameters

 • For optimisation, estimates epidemiological outputs from proportionate allocation of funding across programs given a certain funding envelope

   Currently uses SLSQP from the “minimize” function of the scipy.optimize package

   Considers proportional funding to interventions to be the bounds

   Considers the function to be minimised to be the epidemiological output of interest (usually incidence or mortality) when scenarios are run with varying funding allocation from a fixed/calibrated baseline

Disease-specific (TB) modelb

Defines stratifications and their interaction by:

 • Age

 • Comorbidity and/or population risk group

 • Organ involvement (smear-positive pulmonary, smear-negative pulmonary and extrapulmonary)a

 • Drug resistance of infecting straina

 • Health system qualitya

Sets inter-compartmental flows, for:

 • Ageing

 • Natural progression through stages of infection and disease

 • Detection (by each stratum of health system quality, if applicable)

 • Drug resistance status assignment by health system

Implements interventions selected from scenarios requested in Graphical user interface

 • Estimates economics of interventions using logistic cost-coverage curves and population sizes

General transmission dynamic model

Defines fundamental structures of transmission dynamic model which are not pathogen-specific (i.e. components common to any deterministic, compartmental, ordinary differential equation-based model of population-level infectious disease transmission), including:

 • Compartments

 • Inter-compartmental flows

 • Fixed parameters

 • Variables to be updated at each integration time step

Output modules

Creates Word™ and Excel™ tables of epidemiological and economic outputs and graphical (PNG) figures to illustrate:

 • Compartmental model structure (using “graphviz” repository)

 • Time-variant parameters, including fit to input data (see Fig. 3)

 • Other illustrations of epidemiological implementation of interventions

   e.g. visualisation of matrix of population mixing

 • Aggregate model outputs compared to Global TB Report estimates, for:

   Scenarios

   Uncertainty (see Fig. 4)

 • Model outputs by risk groups

 • Optimised funding distribution across interventions

  1. aNote that not all types of stratification apply to all compartments (e.g. susceptible population not stratified by drug resistance of infecting organism), see Fig. 2. bThis module is not a stand-alone class, but instead inherits general methods from the General transmission dynamic model module, adding TB-specific methods to the class. Abbreviations: TB, tuberculosis; PNG, portable network graphics; UNICEF, The United Nations International Children’s Emergency Fund; WHO, World Health Organization.