All Projects → neherlab → Covid19_scenarios

neherlab / Covid19_scenarios

Licence: mit
Models of COVID-19 outbreak trajectories and hospital demand

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Covid19 scenarios

covid19 scenarios data
Data preprocessing scripts and preprocessed data storage for COVID-19 Scenarios project
Stars: ✭ 43 (-96.83%)
Mutual labels:  science, research, model
Augur
Python library and web service for Open Source Software Health and Sustainability metrics & data collection.
Stars: ✭ 304 (-77.56%)
Mutual labels:  research, open-source, opensource
Pybossa
PYBOSSA is the ultimate crowdsourcing framework (aka microtasking) to analyze or enrich data that can't be processed by machines alone.
Stars: ✭ 670 (-50.55%)
Mutual labels:  research, opensource, science
Readme Template
A Readme Template For Tomorrow's Opensource
Stars: ✭ 69 (-94.91%)
Mutual labels:  open-source, opensource
Module 5 Open Research Software And Open Source
Module 5: Open Research Software and Open Source
Stars: ✭ 62 (-95.42%)
Mutual labels:  open-source, opensource
Openvoiceos
OpenVoiceOS is a minimalistic linux OS bringing the open source voice assistant Mycroft A.I. to embbeded, low-spec headless and/or small (touch)screen devices.
Stars: ✭ 64 (-95.28%)
Mutual labels:  open-source, opensource
Latex Examples
Examples for the usage of LaTeX
Stars: ✭ 1,032 (-23.84%)
Mutual labels:  research, science
Deeplearning Mindmap
A mindmap summarising Deep Learning concepts.
Stars: ✭ 1,251 (-7.68%)
Mutual labels:  data, science
Deveeldb
DeveelDB is a complete SQL database system, primarly developed for .NET/Mono frameworks
Stars: ✭ 80 (-94.1%)
Mutual labels:  data, open-source
Bhagavadgita
A non-profit initiative to help spread the transcendental wisdom from the Bhagavad Gita to people around the world.
Stars: ✭ 84 (-93.8%)
Mutual labels:  open-source, opensource
Aurdroid
Android AUR [Arch Linux user Repository] packages browser
Stars: ✭ 88 (-93.51%)
Mutual labels:  open-source, opensource
Avideo
Create Your Own Broadcast Network With AVideo Platform Open-Source. OAVP OVP
Stars: ✭ 1,329 (-1.92%)
Mutual labels:  open-source, opensource
Php E Invoice It
A PHP package for managing italian e-invoice and notice XML formats. (Pacchetto PHP per gestire il formato XML di fatture e notifiche come richiesto dal SdI).
Stars: ✭ 53 (-96.09%)
Mutual labels:  open-source, opensource
Awesome Readme
A guide to writing an Awesome README. Read the full article in Towards Data Science.
Stars: ✭ 65 (-95.2%)
Mutual labels:  open-source, opensource
Uwp App Launcher Mobile
[Open Source] It's like the iOS and Android Home Screens but for Windows 10 (Phones).
Stars: ✭ 47 (-96.53%)
Mutual labels:  open-source, opensource
Unity Experiment Framework
UXF - Framework for creating human behaviour experiments in Unity
Stars: ✭ 81 (-94.02%)
Mutual labels:  research, science
Morphogenesis Resources
Comprehensive list of resources on the topic of digital morphogenesis (the creation of form through code). Includes links to major articles, code repos, creative projects, books, software, and more.
Stars: ✭ 1,278 (-5.68%)
Mutual labels:  research, simulation
Rox
🌍 BeWelcome lets you share a place to stay, connect with travellers, meet up and find accommodation on your journey. It is and will always be a free, open source, non for profit, democratic community.
Stars: ✭ 95 (-92.99%)
Mutual labels:  open-source, opensource
Pydap
A Python library implementing the Data Access Protocol (DAP, aka OPeNDAP or DODS).
Stars: ✭ 90 (-93.36%)
Mutual labels:  data, science
Digeds cat
This research seeks to examine best practice in the field of digital editions by collating relevant evidence in a detailed catalogue of extant digital projects.
Stars: ✭ 40 (-97.05%)
Mutual labels:  data, open-source

COVID-19 Scenarios

Models of COVID-19 outbreak trajectories and hospital demand

🌐 covid19-scenarios.org

An animated screenshot of the application, showcasing the user interface on main page

License package.json version

Build status for production Build status for staging Known Vulnerabilities Security Headers badge Mozilla Observatory badge

DeepScan grade

Dependency Status Dependency Status Dev GitHub last commit GitHub commit activity GitHub contributors

Contributions: welcome Discussions are here

Twitter Follow

Got questions or suggestions?

Discussions are here

🔍 Discover

Simulator Source code repository Data directory Updates
Image with app logo and text 'Try' Image with GutHub logo and text 'Get Involved' Image with GutHub logo and text 'Add Data' Image with Twitter logo and text 'Follow'

👀 Overview

This tool is based on the SIR model (see about page for details) that simulates a COVID19 outbreak. The population is initially mostly susceptible (other than for initial cases). Individuals that recover from COVID19 are subsequently immune. Currently, the parameters of the model are not fit to data but are simply defaults. These might fit better for some localities than others. In particular the initial cases counts are often only rough estimates.

The primary purpose of the tool is to explore the dynamics of COVID19 cases and the associated strain on the health care system in the near future. The outbreak is influenced by infection control measures such as school closures, lock-down etc. The effect of such measures can be included in the simulation by adjusting the mitigation parameters. Analogously, you can explore the effect of isolation on specific age groups in the column "Isolated" in the table on severity assumptions and age specific isolation.

Most parameters can be adjusted in the tool and for many of them we provide presets (scenarios).

Input data for the tool and the basic parameters of the populations are collected in the /data directory. Please add data on populations and parsers of publicly available case count data there.

📕 User's Guide

The online application provides a friendly user interface with drop downs to choose model parameters, run the model, and export results in CSV format. A detailed process is below.

Parameters: population

Select the population drop down and select a country/region to auto-populate the model's parameters with respective UN population data. These parameters can be individually updated manually if necessary.

Parameters: epidemiology

The epidemiology parameters are a combination of speed and region - specifying growth rate, seasonal variation, and duration of hospital stay. To choose a preset distribution, select one of the options from the epidemiology drop down to auto-populate the model's parameters with the selected parameters.

Parameters: mitigation

Mitigation parameters represent the reduction of transmission through mitigation (infection control) measures over time. To select a preset, click on the mitigation dropdown and select one of the options. Otherwise, the points on the graph can be dragged and moved with the mouse. The parameter ranges from one (no infection control) to zero (complete prevention of all transmission).

Running the Model

Once the correct parameters are inputted, select the run button located in the Results section of the application. The model output will be displayed in 2 graphs: Cases through time and Distribution across groups and 2 tables: Populations and Totals/Peak.

Exporting Results

The model's results can be exported in CSV format by clicking the "export" button in the right hand corner.

🖥️ Developer's guide

Quick Start

Run natively

Install the requirements:

  • git >= 2.0
  • node.js >= 10 (we recommend installation through nvm or nvm-windows)
  • 1.0 < yarn < 2.0

Then in your terminal type:

git clone --recursive https://github.com/neherlab/covid19_scenarios
cd covid19_scenarios/
cp .env.example .env
yarn install
yarn dev

(on Windows, substitute cp with copy)

This will trigger the development server and build process. Wait for the build to finish, then navigate to http://localhost:3000 in a browser (last 5 versions of Chrome or Firefox are supported in development mode).

ℹ️ Hint: type "rs" in terminal to restart the build

ℹ️ Hit Ctrl+C in to shutdown the server

Run in docker container

Install the requirements:

  • Docker > 19.0
  • docker-compose >= 1.25

Run docker-compose with docker/docker-compose.dev.yml file:

UID=$(id -u) docker-compose -f docker/docker-compose.dev.yml up --build

Variable UID should be set to your Unix user ID. On single-user setups these are usually 1000 on Linux and 523 on Mac.

Directory Structure

As a developer you are most likely interested in the actual source code in src/ directory.

File or directory Contents
📁algorithims/ Algorithm's implementation
├📄model.ts/ Model's implementation
├📄run.ts/ Algorithm's entry point
📁assets/ Input data, images, and text assets
📁components/ React components
├📁Form/ Form components
├📁Main/ Simulator's UI main component implementation
| ├📁Containment/ Containment widget
| ├📁Results/ Results panel
| ├📁Scenario/ Scenario panel
| ├📁state/ Main component's state management (hooks)
| ├📁validation/ Form validation
| ├📄Main.scss/
| ├📄Main.tsx/ Simulator's UI main component entry point
├📄App.tsx/ App main component
📁locales/ Locales for translation
📁pages/ Application's pages
📁server/ Server that serves production build artifacts
📁state/ App state management (Redux and sagas)
📁styles/ Stylesheets
📁types/ Typescript typings
📄index.ejs HTML template
📄index.polyfilled.ts Entry point wrapper with polyfills
📄index.tsx Real entry point
📄links.ts Navbar links
📄routes.ts Routes (URL-to-page mapping)

Production build

In order to replicate the production build locally, use this command:

yarn prod:watch

This should build the application in production mode and to start static server that will serve the app on http://localhost:8080 (by default)

Translations

The translation JSON files are in src/i18n/resources You can edit them directly or using GitLocalize. Here are the direct links to GitLocalize for each language that has translations currently:

Schemas

The directory schemas/ contains JSON schemas which serve as a base for type checking, validation and serialization.

In particular, some of the types:

  • are generated from schemas for both Python (as classes) and Typescript (as interfaces)
  • are validated on runtime using corresponding libraries in these languages
  • are (when appropriate) serialized and deserialized using generated serialization/deserialized functions

We make emphasis on types that are shared across languages (e.g. Python to Typescript) as well as on types that participate in input-output (e.g. URLs, Local Storage, File I/O) and require particularly careful validation and serialization.

If you are planning to change one of the types that happens to be generated, you need to modify the corresponding schema first and them re-run the type generation.

See also:

Release cycle, continuous integration and deployment

TODO

Getting Started

For new contributers, follow the guide below to learn how to install required software, fork & clone, and submit changes using a pull request.

✨ Installing Required Software

  1. Install Git by following GitHub's instructions here

  2. Node.js can be installed using nvm on Mac/Linux and nvm-windows on Windows.

  3. Yarn can be globally installed following these steps

🍴 Forking the Repo

Click the Fork button on the upper right-hand side of the repository’s page.

👯 Clone Forked Repository

Clone this repository to your local machine. You can use the URL of your repo inside git command, for example:

git clone https://github.com/<YOUR_GITHUB_USERNAME>/covid19_scenarios

🔨 Start coding!

💻 Updating the Forked Repository

To ensure that the forked code stays updated, you’ll need to add a Git remote pointing back to the original repository and create a local branch.

git remote add upstream https://github.com/neherlab/covid19_scenarios

To create and checkout a branch,

  1. Create and checkout a branch
git checkout -b <new branch name>
  1. Make changes to the files
  2. Commit your changes to the branch using git add and then git commit

💪 Submitting changes using a Pull Request

To submit your code to the repository, you can submit a pull request.

🙏 Acknowledgements

Initial development

Initially, the development was started in the Research group of Richard Neher at the Biozentrum, University of Basel (Basel, Switzerland) by Richard Neher (@rneher), Ivan Aksamentov (@ivan-aksamentov) and Nicholas Noll (@nnoll).

Jan Albert from Karolinska Institute (Stockholm, Sweden) had the initial idea to develop this tool and suggested features and parameters, and Robert Dyrdak provided initial parameter estimates.


Richard Neher
@rneher

Ivan Aksamentov
@ivan-aksamentov

Nicholas Noll
@nnoll

Jan Albert

Robert Dyrdak

Contributors ✨

We are thankful to all our contributors, no matter how they contribute: in ideas, science, code, documentation or otherwise. Thanks goes to these wonderful people (emoji key):


Aditya Sharad

💻 🔧

Agon Hasani

💻 🔣

Alexis Iglauer

💻 🔣 🚧

Andrew McKeever

💻 💬

Anson Chong

💻 🎨

Arkadiusz Goralski

💻 🌍

Arnaud

💻 👀

Ashwin Gokhale

💻

Bradley Betts

💻 🔧

Bruno RZN

💻 💬 👀

Christian Wienbruch

💻 🔣

Christian-G-UT

💻 🔣

Danko Kozar

💻 🎨

Danny Sepler

💻 💬 👀

Darío Hereñú

📖 🌍 💻 🔣

David Hansen

💻

Di Guan

💻

Emmanuel Murillo Sánchez

💻 💬 🌍

Evan Krell

💻 🔣

Fabio Zanini

💻 🔣

Gabriel Homsi

💻 🔣

Gavin Jefferies

💻 📖 🔣 ⚠️ 👀

Gustavo Ribeiro

💻 🔣

Hannes Granström

💻 💬 🌍

Hui Xiang Chua

💻 🔣 🔧

Igor Savin

💻 💬 👀

Ivan Aksamentov

💻 📖 🚇 🚧 💬 👀

Iván Yepes

💻 💬

Jacob Smith

💻 💬 👀

Jill Adona

💻 🔣

John Yani

💻 🔣

Joram van den Boezem

💻 🔣

Jose Eduardo Kimura

💻 🎨

Joël

💻 💬 🚧

Juha

🖋 🌍

Kamil Bobrowski

💻 ⚠️ 🚧

Kartik

💻 🔣

Manuel Blechschmidt

💻 💬 ⚠️

Maoz Gelbart

💻 🔣

Martin Vejmelka

💻 💬 🔣

Max Tarsis

💻 💬 ⚠️

Mickey Pearce

💻 🚧

Miguel Serrano

💻 💬 📖 🚧

Mika Laaksonen

💻 🎨

MikaMaracuja

💻 🔣

Nataliya Karatkova

💻 🎨

Nathan Springman

💻 🎨

Nicholas Noll

💻 📖 🔣 🚧 👀

Nils Ole Tippenhauer

💻 🔣

Patrick Assaf

💻 🎨

Patrik Varga

💻 🚧 💬

Pete Bacon Darwin

💻 💬

Rachel Harvill

💻 💬 📖

Rebecca Mullin

💻 💬

Rich Evans

💻 📖 🔣

Richard Neher

💻 📖 🔣 🚧 🛡️ 👀

Rizky Maulana Nugraha

💻 🚧

Rui Lima

💻 💬 🌍

Rui Saraiva

💻 📖 💬 🚧

Sam

📖 🖋

Sebastian Gierth

💻 💬 👀 🌍

TIAGO ANDRES VAZ

💻 🔣 🤔

TeepaBlue

💻

Thomas Eckert

💻 📖

Tryggvi Gylfason

💻 🎨

Valentin Druelle

💻 🔣 🤔 📢

Victor Cordova

💻 🎨

William Hiver

💻 🌍

abrie

💻 📖 ⚠️ 👀

alebrand

💻 🔣

arieltonglet

💻 🎨

aschelch

💻 💬 🌍

bharath6365

💻 💬

btoo

💻 📖 🚧

ceporche

🌍

joaopn

💻 🌍

kmid5280

💻 🎨

kupad95

💻 🔣

nono

💻 💬 🌍

pvillamartin

💻 🔣 🎨

r-s-rai

💻 🎨

thoo1

💻 🎨

This project follows the all-contributors specification. Contributions of any kind welcome!

License

MIT License

Copyright (c) 2020 neherlab

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].