All Projects → cognizant-ai-labs → covid-xprize

cognizant-ai-labs / covid-xprize

Licence: other
Open-source repository containing examples and documentation for the Cognizant XPRIZE Pandemic Response Challenge

Programming Languages

python
139335 projects - #7 most used programming language
Jupyter Notebook
11667 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to covid-xprize

COVID breakdown
COVID-19 statistics in Taiwan
Stars: ✭ 15 (-58.33%)
Mutual labels:  pandemic, covid-19, covid, covid19
covid19 statistics
Aplicação para acompanhamento das estatísticas do COVID-19 no Brasil 🦠
Stars: ✭ 34 (-5.56%)
Mutual labels:  pandemic, covid-19, covid19
corona tracker
COVID-19 tracking app - submission for https://wirvsvirushackathon.org/
Stars: ✭ 13 (-63.89%)
Mutual labels:  covid-19, covid, covid19
open-data-covid-19
Open Data Repository for the Covid-19 dataset.
Stars: ✭ 19 (-47.22%)
Mutual labels:  covid-19, covid, covid19
covid-dashboard
Help welcomed if you have expertise in public health web technology, data modeling and munging, or visualization.
Stars: ✭ 106 (+194.44%)
Mutual labels:  covid-19, covid, covid19
Api
API for Current cases and more stuff about COVID-19 and Influenza
Stars: ✭ 2,323 (+6352.78%)
Mutual labels:  covid-19, covid, covid19
COVID-19-historical-data-visualization-2019-nCoV-
使用BlankerL提供的数据仓库实现的新型冠状病毒疫情数据可视化
Stars: ✭ 47 (+30.56%)
Mutual labels:  covid-19, covid, covid19
rid-covid
Image-based COVID-19 diagnosis. Links to software, data, and other resources.
Stars: ✭ 74 (+105.56%)
Mutual labels:  covid-19, covid, covid19
api-service
The REST API backend server for the Jalgaon CoHelp application. Built with Kotlin Ktor.
Stars: ✭ 26 (-27.78%)
Mutual labels:  pandemic, covid-19, covid19
covid19-timeseries
Covid19 timeseries data store
Stars: ✭ 38 (+5.56%)
Mutual labels:  covid-19, covid, covid19
covid-pass-verifier
🦠 Scan, parse and verify HCERT compliant government-issued COVID-19 passes.
Stars: ✭ 25 (-30.56%)
Mutual labels:  covid-19, covid, covid19
covidpass
Scan your vaccination, test and recovery certificates in QR code representation and save them to your Apple Wallet
Stars: ✭ 137 (+280.56%)
Mutual labels:  covid-19, covid, covid19
covid-19
COVID-19 World is yet another Project to build a Dashboard like app to showcase the data related to the COVID-19(Corona Virus).
Stars: ✭ 28 (-22.22%)
Mutual labels:  covid-19, covid, covid19
instacart-delivery-slot-finder
Mac Script that notifies you once a delivery slot in available on Instacart
Stars: ✭ 18 (-50%)
Mutual labels:  pandemic, covid-19, covid19
us-covid19
Data repository of State's Health Department stats for COVID19 in the United States
Stars: ✭ 37 (+2.78%)
Mutual labels:  covid-19, covid, covid19
COVID-19-DETECTION
Detect Covid-19 with Chest X-Ray Data
Stars: ✭ 43 (+19.44%)
Mutual labels:  covid-19, covid, covid19
coviddata
Daily COVID-19 statistics by country, region, and city
Stars: ✭ 49 (+36.11%)
Mutual labels:  covid-19, covid, covid19
CoronaVirusOutbreakAPI
A tiny and small program to crawler and analyze outbreak of COVID-19 in world and every country using PHP.
Stars: ✭ 20 (-44.44%)
Mutual labels:  covid-19, covid, covid19
covid-br
COVID dashboard status from Brazil.
Stars: ✭ 28 (-22.22%)
Mutual labels:  covid-19, covid, covid19
PhoNER COVID19
COVID-19 Named Entity Recognition for Vietnamese (NAACL 2021)
Stars: ✭ 55 (+52.78%)
Mutual labels:  covid-19, covid, covid19

XPRIZE Pandemic Response Challenge

Introduction

Welcome to the XPRIZE Pandemic Response Challenge! This repository contains what you need to get started in creating your submission for the contest.

Within this repository you will find:

  • Sample predictors and prescriptors provided by Cognizant, in the form of Jupyter notebooks and python scripts
  • Sample implementations of the "predict" API and the "prescribe" API, which you will be required to implement as part of your submission
  • Sample IP (Intervention Plan) data to test your submission

Pre-requisites

To run the examples, you will need:

  • A computer or cloud image running a recent version of OS X or Ubuntu (Using Microsoft Windows™ may be possible but the XPRIZE team and Cognizant will be unable to support you.)
  • Your machine must have sufficient resources in terms of memory, CPU, and disk space to train machine learning models and run Python programs.
  • An installed version of Python, version ≥ 3.6. To avoid dependency issues, we strongly recommend using a standard Python virtual environment with pip for package management. The examples in this repo assume you are using such an environment.

Having registered for the contest, you should also have:

  • A copy of the Competition Guidelines
  • Access to the Support Slack channel
  • A pre-initialized sandbox within the XPRIZE system

Examples

Under the covid_xprize/examples directory you will find some examples of predictors and prescriptors that you can inspect to learn more about what you need to do:

  • predictors/linear contains a simple linear model, using the Lasso algorithm.
  • predictors/lstm contains a more sophisticated LSTM model for making predictions.
  • prescriptors/zero contains a trivial prescriptor that always prescribes no interventions; prescriptors/random contains one that prescribes random interventions.
  • prescriptors/neat contains code for training prescriptors with NEAT

The instructions below assume that you are using a standard Python virtual environment, and pip for package management. Installations using other environments (such as conda) are outside the scope of these steps.

In order to run the examples locally:

  1. Ensure your current working directory is the root folder of this repository (the same directory as this README resides in). The examples assume your working directory is set to the project root and all paths are relative to it.
  2. Ensure your PYTHONPATH includes your current directory:
    export PYTHONPATH="$(pwd):$PYTHONPATH"
  3. Create a Python virtual environment
  4. Activate the virtual environment
  5. Install the necessary requirements:
    pip install -r requirements.txt --upgrade
  6. Start Jupyter services:
    jupyter notebook
    This causes a browser window to launch
  7. Browse to and launch one of the examples (such as linear) and run through the steps in the associated notebook -- in the case of linear, Example-Train-Linear-Rollout-Model.ipynb.
  8. The result should be a trained predictor, and some predictions generated by running the predictor on test data. Details are in the notebooks.

XPRIZE sandbox

Upon registering for the contest, you will have been given access to a "sandbox", a virtual area within the XPRIZE cloud within which you can submit your work.

Submitting a predictor

In order for the automated judging process to detect and evaluate your submission, you must follow the instructions below. If your script does not conform to the API in any way, your submission will be omitted from judging.

  1. Within your sandbox, under your home directory you will find a pre-created work directory.
  2. Under this work directory, you must provide a Python script with the name predict.py. Examples of such scripts are provided in this repository. This script will invoke your predictor model and save the predictions produced.
  3. Your script must accept particular command line parameters, and generate a particular output, as explained below.
  4. Whatever models and other data files your predictor requires must be uploaded to your sandbox and visible to your predict.py script, for example, by placing them in the work directory or subdirectories thereof.
  5. Expect that the current working directory will be your sandbox work directory when your script is called. Therefore, references to other modules and resource files should be relative to that.
  6. Expect your script to be called as follows (the dates and filenames are just examples and will vary):
    python predict.py --start_date 2020-12-01 --end_date 2020-12-31 --interventions_plan ip_file.csv 
      --output_file 2020-12-01_2020_12_31.csv 
  7. It is the responsibility of your script to run your predictor for the dates requested (between start_date and end_date inclusive) and generate predictions in the path and file specified by output_file, using the provided intervention plan. Take careful note of the performance and timing requirements in the Competition Guidelines for running your predictor.

For more details on this API, consult the Competition Guidelines or the support Slack channel.

Submitting a prescriptor

In order for the automated judging process to detect and evaluate your submission, you must follow the instructions below. If your script does not conform to the API in any way, your submission will be omitted from judging.

  1. Within your sandbox, under your home directory you will find a pre-created work directory.
  2. Under this work directory, you must provide a Python script with the name prescribe.py. Examples of such scripts are provided in this archive. This script will invoke your prescriptions model and save the prescriptions produced.
  3. Your script must accept particular command line parameters, and generate a particular output, as explained below.
  4. Whatever models and other data files your prescriptor requires must be uploaded to your sandbox and visible to your prescribe.py script, for example, by placing them in the work directory or subdirectories thereof.
  5. Expect that the current working directory will be your sandbox work directory when your script is called. Therefore, references to other modules and resource files should be relative to that.
  6. Expect your script to be called as follows (the dates and filenames are just examples and will vary):
    python prescribe.py --start_date 2020-12-01 --end_date 2020-12-31 --interventions_past ip_file.csv 
      --output_file 2020-12-01_2020_12_31.csv 
  7. It is the responsibility of your script to run your prescriptor for the dates requested (between start_date and end_date inclusive) and generate prescriptions in the path and file specified by output_file. Take careful note of the performance and timing requirements in the Competition Guidelines for running your prescriptor.

Example prescriptors can be found under covid_xprize/examples/prescriptors/.

For more details on this API, consult the Competition Guidelines or the support Slack channel.

Trained standard predictor

The repo also provides a trained standard predictor to train prescriptors against. To use it, call covid_xprize/standard_predictor/predict.py to make predictions. See get_predictions in covid_xprize/examples/prescriptors/neat/utils.py and generate_cases_and_stringency_for_prescriptions in prescriptor_robojudge.ipynb for examples of how to make this call.

More information/Support

For more information and support, refer to the competition guidelines or post your questions in the support Slack channel; you should have gained access to both of these when you created a login in the competition platform.

For a concrete visualization of what the competition is about, see Cognizant's COVID-19 intervention optimization demo. Using this dashboard you can select among different prescriptors from the Pareto Front to see the effect on prescriptions for intervention plans in various regions.

For more background information please see also the research paper From Prediction to Prescription: Evolutionary Optimization of Non-Pharmaceutical Interventions in the COVID-19 Pandemic.

Copyright 2020 (c) Cognizant Digital Business, Evolutionary AI. All rights reserved. Issued under the Apache 2.0 License.

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].