Introduction

Simulating hypothetical scenarios is a very useful way to analyse and predict the behaviour of complex phenomena such as the spread of COVID-19 through a network of individuals. An infectious disease outbreak is heavily influenced by factors pertaining to both the disease (like the transmissibility of the disease, or how it is affected by vaccines), and the network on which it spreads (such as the age structure, population density, network contacts, and geography). These factors can be responsible for heterogeneity in the size and severity of outbreaks in different locations that might otherwise appear similar.

For this reason the results from models developed for other countries may not be able to achieve the desirable level of predictive ability. Such models might not account for factors pertinent to India – its unique demographics, the state (or absence) of health care, stratified social structures, and complex ecological gradients. The inputs for such factors must be collated from multiple sources, including imperfect and poorly usable government data, which requires both local knowledge and considerable experience in data analysis and interpretation. The result is a pressing need for an epidemic modelling framework tailored to Indian needs, with potential applications beyond its immediate use for COVID-19 modelling.

Given these design requirements, building and implementing detailed agent-based models is an unsurprisingly daunting task. A useful model should ideally predict impending potential surges in healthcare requirements, allowing for timely resource allocation. It should also allow the modeler to compare the merits and consequences of different non-pharmaceutical interventions at different stages of the epidemic. As a specific example, a useful model might help the modeler untangle how asymptomatic infections play a role in the spread of the disease.

BharatSim has been developed with 3 goals in mind:

  1. Flexibility: Since it is a social simulation framework, a researcher can develop models for a variety of disciplines including epidemiology, economics, climate science.

  2. Scalability: It can keep track of millions of agents in an efficient manner.

  3. Customisation: It has been developed to suit India’s needs, via its support for synthetic population.

BharatSim has been designed keeping these design requirements and challenges of the Indian context in mind. BharatSim’s vision is to build an India scale agent-based framework that would enable modellers from different disciplines – ranging from epidemiology, disaster management, and economics – to advise policy makers and decision makers across institutions.

Synthetic Population

A synthetic population is a simplified individual-level representation of the actual population. This means that while every person is represented individually in it, not all of their attributes are included (for example, hair colour or shoe-size are deemed to be irrelevant for modelling epidemic spread, and are thus ignored, while the presence of comorbidities like diabetes would be included). As such, a synthetic population does not aim to be identical to the actual population, but instead attempts to match its various statistical distributions and correlations, thereby being sufficiently close to the true population to be used in modelling.

In the table below, you can see an example of a section of a synthetic population. Each row represents an individual with a unique ID, as well as certain attributes. These attributes could be related to the individual themselves (like their gender, age, and height and so on), or their network (details pertaining to their homes, workplaces, and possibly schools). Additionally, the population could also contain information regarding the individual’s comorbidities (for example, whether they have diabetes or other preexisting conditions), if this is deemed relevant to the modelling exercise.

sample_synthetic_population.csv

Agent_ID

SexLabel

Age

Height

Weight

JobLabel

StateLabel

District

AdminUnitName

AdminUnitLatitude

AdminUnitLongitude

HHID

H_Lat

H_Lon

WorkPlaceID

W_Lat

W_Lon

school_id

school_lat

school_long

public_place_id

public_place_lat

public_place_long

essential_worker

Adherence_to_Intervention

M_High_BP

M_Diabetes

99802077568

Female

76

147.37

49.05

Construction

Maharashtra

Pune

Mohammadwadi-Kausar Baug

18.47477

73.89257

99801684702

18.46709

73.90603

2001000003467

18.4679

73.89859

0

3001000000062

18.45035

73.87068

0

1

0

0

99801380107

Male

37

162.03

57.94

Ag labour

Maharashtra

Pune

Nagpur Chawl-Phule Nagar

18.55893

73.87609

99801248473

18.55952

73.87877

2001000006630

18.58283

73.91661

0

3001000001044

18.52699

73.83451

1

0

0

0

99802408169

Male

6

111.21

23.13

Student

Maharashtra

Pune

Kharadi-Chandan Nagar

18.56355

73.93256

99800525921

18.54846

73.94971

0

2001000002070

18.55683

73.94757

3001000000274

18.54904

73.9491

0

1

0

0

99800402683

Female

37

152.65

52.61

Ag labour

Maharashtra

Pune

Karve Nagar

18.49149

73.82173

99800473441

18.48539

73.82129

2001000006876

18.53875

73.92594

0

3001000000650

18.48382

73.79731

1

0

0

0

99800824202

Female

35

150.92

52.42

Homebound

Maharashtra

Pune

Deccan Gymkhana-Model Colony

18.51845

73.83391

99800895513

18.52335

73.85339

0

0

3001000000236

18.54026

73.91186

0

0

0

0

99801178045

Female

50

151.51

50.1

Ag labour

Maharashtra

Pune

Shanivar Peth-Sadashiv Peth

18.51944

73.85194

99801142021

18.51388

73.84935

2001000000636

18.50785

73.84921

0

3001000001403

18.51024

73.84731

0

0.9

0

0

99802883562

Female

14

139.25

37.81

Student

Maharashtra

Pune

Viman Nagar-Somnath Nagar

18.55818

73.92165

99801268501

18.57398

73.9285

0

2001000000159

18.52152

73.92834

3001000000633

18.56121

73.93799

0

0.8

0

0

99800390824

Male

19

157.71

50.84

Plantation lab

Maharashtra

Pune

Salisbury Park-Maharshi Nagar

18.49162

73.8661

99800461238

18.49814

73.87331

2001000011846

18.49934

73.8511

0

3001000000528

18.46247

73.85122

0

0.4

0

0

99800144374

Female

50

152.6

50.58

Homebound

Maharashtra

Pune

Dhanakvadi-Ambegaon Pathar

18.45878

73.84264

99800193269

18.46661

73.8561

0

0

3001000001414

18.46532

73.89147

0

0.9

0

0

99800944765

Female

45

151.99

50.99

Homebound

Maharashtra

Pune

Kharadi-Chandan Nagar

18.56355

73.93256

99800978186

18.54808

73.94093

0

0

3001000001402

18.5684

73.82062

0

0.9

0

0

All of these attributes are strongly correlated with each other and a good synthetic population will ideally be able reproduce the correlations that occur in the real world. However, this is a monumental task; real world data is complex, and often contains many artifacts that need to be addressed.