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 |