Giter Site home page Giter Site logo

altazine / covasim Goto Github PK

View Code? Open in Web Editor NEW

This project forked from institutefordiseasemodeling/covasim

0.0 1.0 0.0 9.16 MB

COVID-19 Agent-based Simulator (Covasim): a model for understanding novel coronavirus epidemiology

License: Other

Dockerfile 0.09% Python 36.10% JavaScript 60.02% CSS 1.82% HTML 1.72% Shell 0.21% Makefile 0.05%

covasim's Introduction

Covasim

Covasim is a stochastic agent-based simulator designed to be used for COVID-19 (novel coronavirus, SARS-CoV-2) epidemic analyses. These include projections of indicators such as numbers of infections and peak hospital demand. Covasim can also be used to explore the potential impact of different interventions.

Requirements

Python >=3.6 (64-bit). (Note: Python 2 is not supported.)

We also recommend, but do not require, using Python virtual environments. For more information, see documentation for venv or Anaconda.

Quick start guide

Install with pip install covasim. If everything is working, the following Python commands should bring up a plot:

import covasim as cv
sim = cv.Sim()
sim.run()
sim.plot()

Detailed installation instructions

  1. Clone a copy of the repository. If you intend to make changes to the code, we recommend that you fork it first.

  2. (Optional) Create and activate a virtual environment.

  3. Navigate to the root of the repository and install the Covasim Python package using one of the following options:

    • To install with webapp support (recommended):

      python setup.py develop

    • To install as a standalone Python model without webapp support:

      python setup.py develop nowebapp

    • To install Covasim and optional dependencies (be aware this may fail since it relies on private packages), enter:

      python setup.py develop full

    The module should then be importable via import covasim.

Detailed usage

There are several examples in the examples directory. These can be run as follows:

  • python examples/simple.py

    This example creates a figure using default parameter values.

  • python examples/run_sim.py

    This shows a slightly more detailed example, including creating an intervention and saving to disk.

  • python examples/run_scenarios.py

    This shows a more complex example, including running an intervention scenario, plotting uncertainty, and performing a health systems analysis.

Module structure

All core model code is located in the covasim subfolder; standard usage is import covasim as cv. The other subfolders, cruise_ship and webapp, are also described below.

The model consists of two core classes: the Person class (which contains information on health state), and the Sim class (which contains methods for running, calculating results, plotting, etc.).

The structure of the covasim folder is as follows:

  • base.py: The ParsObj class, plus basic methods of the BaseSim class, and associated functions.
  • defaults.py: The default colors, plots, etc. used by Covasim.
  • interventions.py: The Intervention class, for adding interventions and dynamically modifying parameters.
  • parameters.py: Functions for creating the parameters dictionary and loading the input data.
  • person.py: The Person class.
  • population.py: The People class, and functions for creating a population of people.
  • requirements.py: A simple module to check that imports succeeded, and turn off features if they didn't.
  • run.py: Functions for running simulations (e.g. parallel runs and the Scenarios class).
  • sim.py: The Sim class, which performs most of the heavy lifting: initializing the model, running, and plotting.
  • utils.py: Functions for choosing random numbers, many based on Numba, plus other helper functions.
  • version.py: Version, date, and license information.

cruise_ship

A version of the Covasim model specifically adapted for modeling the Diamond Princess cruise ship. It uses its own parameters file (parameters.py) and has slight variations to the model (model.py).

webapp

For running the interactive web application. See the webapp readme for more information.

Other folders

Please see the readme in each subfolder for more information.

bin

This folder contains a command-line interface (CLI) version of Covasim; example usage:

covasim --pars "{pop_size:20000, pop_infected:1, n_days:360, rand_seed:1}"

Note: the CLI is currently not compatible with Windows. You will need to add this folder to your path to run from other folders.

data

Scripts to automatically scrape data (including demographics and COVID epidemiology data), and the data files themselves (which are not part of the repository).

docker

This folder contains the Dockerfile and other files that allow Covasim to be run as a webapp via Docker.

examples

This folder contains demonstrations of simple Covasim usage.

licenses

Licensing information and legal notices.

tests

Integration, development, and unit tests.

sweep

Utilites for hyperparameter sweeps, using Weights and Biases. See the sweep readme for more information.

Disclaimer

The code in this repository was developed by IDM to support our research in disease transmission and managing epidemics. We’ve made it publicly available under the Creative Commons Attribution-Noncommercial-ShareAlike 4.0 License to provide others with a better understanding of our research and an opportunity to build upon it for their own work. We make no representations that the code works as intended or that we will provide support, address issues that are found, or accept pull requests. You are welcome to create your own fork and modify the code to suit your own modeling needs as contemplated under the Creative Commons Attribution-Noncommercial-ShareAlike 4.0 License.

covasim's People

Contributors

cliffckerr avatar robynstuart avatar romesha avatar daniel-klein avatar gwincr11 avatar cwiswell-idm avatar deviozc avatar devclinton avatar lmgeorge avatar ckerr-idm avatar sayers24 avatar hamelsmu avatar jschripsema-idm avatar rasmuswl avatar adityasharad avatar chjones-idm avatar mfisher-idmod avatar krosenfeld-idm avatar ghart-idm avatar jps1 avatar pselvaraj87 avatar dmistry-idm avatar celiot-idm avatar clorton avatar jules2689 avatar mizzo-idm avatar

Watchers

James Cloos avatar

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.