Giter Club home page Giter Club logo

dime-worldbank / disease-modelling-ssa Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 2.0 331.6 MB

This repository contains the code for an agent-based model used for COVID-19 in Sub-Saharan Africa. The original code was written in Python by Aivin Solatorio and is since being developed in Java. Complimentary risk modelling has been conducted in R as an intermediate product and is also part of this repo

License: MIT License

Stata 11.54% Jupyter Notebook 85.86% R 0.18% Python 1.80% Java 0.63%

disease-modelling-ssa's People

Contributors

kbjarkefur avatar marinecdf avatar robertmanningsmith avatar spet2094 avatar swise5 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

disease-modelling-ssa's Issues

Change string based variables with set names to enums where possible

Some things in the model would be better if written up as enums. We have several things such as names of behaviours, attributes relating to people etc.. that we have set names for, and will only ever be one of the set names for.

Changing these to enums would be a better data type

Bubbles

Currently each agent draws their contacts in each place from a pool of all agents in the district. i.e. perfect mixing.
Instead we want it to be that each agent draws their contacts from a smaller pool of the maximum number of contacts in the specific place they visit e.g. you can have 2 contacts from a pool of 100 at the office. This is to be based on the Round 9 Manicaland data that was collected.

dummy data files described on wiki

the wiki would benefit from more information about the data files. The basic required files are now in the main branch under Protecs/src/main/resources, and it would be great to have the information about whence might come such data (either in our existing workflow or in other workflows that might use the same tool in the future)

unit testing

we have no unit testing suite, which is bad practice and makes merging the branches hazardous.

reinfectious behaviour

many diseases have extensive ability to reinfect. Currently, recovered agents do not become "susceptible" again.

Census occupations - babies with jobs

Robbie discovered that some of the occupational categories were mapped to very underage children. Sophie is cleaning the categories so they do not appear to be demonstrating unrealistic levels of child labor.

fine-grained settlement simulation

coordinate with Missing Maps to ensure that we have good building data for the target area and understanding of transport links among different settlements

Scheduling events which do not influence the epidemiology of the disease cause a difference in the number of covid cases at the end of the simulation

When creating a test suite for the covid testing and spurious symptom section of the model I found that even when an event does nothing but print out a line of text, this changed the resulting number of cases predicted by the simulation.

This can be seen in the branch redo_testing_from_scratch. The only change to the main code base so far is that a new function (CovidTesting.Testing) is called from the worldbanksimcovid19sim class (line 199). This file only prints out a line of text.

I created a testing file: CovidTestingTesting.java which runs the simulation with and without covidTesting being called, but produces a different total amount of covid infections being created

probability of leaving the house

redo econStatusMovementProb_week[day/end]_[single/multi].txt files based on Round 9 Manicaland data to capture how likely any given occupation is to have 0 contacts (ie,1 - probability of having any contacts outside the home, including community, work, school, transport) on any given day

Make demography predetermine mortality at the first step of simulation rather than scheduling multiple times

Currently mortality is initially decided at the start of the year. Those who are determined to die do so, those that aren't have their mortality decided again once the next simulation year happens.

We could probably reduce the number of times this happens as follows:

  1. Include a simulation length variable in the sim object say N days
  2. At the start of the simulation do mortality calculations for each person for the time period that the simulation is being run. (I.e. say we run for 800 days, floor (800 / 365) = 2 (years). Calculate the probability of dying in the simulation for each person at age A as prob_dying(A) + prob_dying(A+1) to cover probability of death for both years)
  3. Schedule death for some point in the simulation using existing structures

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.