Skip to main content

SABCOM is an open source, easy-to-use, social network, agent-based, model that can be used to simulate the effects of different lockdown policy measures on the spread of the Covid-19 virus in several (South African) cities.

Project description

License: MIT Python application

The Spatial Agent-Based Covid-19 Model (SABCOM)

SABCOM is an open source, easy-to-use-and-adapt, spatial network, multi-agent, model that can be used to simulate the effects of different lockdown policy measures on the spread of the Covid-19 virus in several (South African) cities.


Using Pip

  $ pip install sabcom

or, alternatively

  $ pip3 install sabcom


  $ git clone
  $ cd sabcom
  $ python install


The application can be used to simulate the progression of Covid-19 over a city of choice. Before running the application, the user needs that make sure that all dependencies are installed. This can be done by installing the files in the requirements.txt file on Github or on your system if you did a manual installation. Given that you are in the folder that contains this file use:

  $ python -m pip install -r requirements.txt

Next, there are two options. Simulating the model (using an existing initialisation) or initialising a new model environment that can be used for the simulation.


Five arguments need to be provided to simulate the model: a path for the input folder (-i), a path for the output folder (-o), a seed (-s), a data output mode (-d), and a scenario (-sc).

simulate -i <input folder path> -o <output folder path> -s <seed> -d <data output mode> -sc <scenario>

For example, say you want to simulate the model using input folder example_data, output folder example_data/output_data, seed 2, data output mode csv-light, and scenario no-intervention. First, make sure that all the files and folders are in your current location. Next, you type in the command line:

$ sabcom simulate -i example_data -o example_data/output_data -s 2 -d csv-light -sc no-intervention

This will simulate a no_intervention scenario for the seed_2.pkl initialisation. input files for the city of your choice, and output a csv light data file in the specified output folder.

Note how this assumes that there is already an initialisation file. If this is not the case, sabcom can be used to produce one given the input files.


initialise <input folder path> <seed number>

If an initialisation file is not present, you can create one using the sabcom initialise function. For example, if you want to create an initialisation with the files in input folder (assumed to be in your current working directory) example_data, Monte Carlo seed 3, the following command can be used:

$ sabcom initialise -i example_data -s 3

As a rule, creating a model initialisation takes much longer than simulating one.


The program requires Python 3, and the packages listed in the requirements.txt file.

Website and Social Media


This software is intended for educational and research purposes. Despite best efforts, we cannot fully rule out the possibility of errors and bugs. The use of SABCoM is entirely at your own risk.

Project details

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sabcom-0.44a0.tar.gz (27.3 kB view hashes)

Uploaded source

Built Distribution

sabcom-0.44a0-py3-none-any.whl (30.3 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page