--- tags: TODO --- # TODO (started July 3) ### Martin: ### Front...Log: - [ ] Add to track risk_attributes: - [ ] intervened_behavior.is_under_quarantine - [ ] intervened_behavior.current_behavior_reasons - [ ] Make an aggregate plot like presymptomatic curves but for symptomatic - [ ] finish reviewing the debug plots - [ ] fix missing plot in baseball cards - [ ] run compute p_covid - [ ] message reza ab out his PR #### Backlog: - [ ] fix skipped tests - [ ] - [ ] refactor reset_index_cases - [ ] add hospitalizations and deaths to intervention_impact - [ ] add intervention_impact plot - [ ] add test for conf['_MEAN_DAILY_UNKNOWN_CONTACTS'], INTERVENTION_START_TIME - [ ] try an experiment with a larger number of people and try to reduce the random network. - [ ] add testing and hospitalazation details to epi paper by Thursday - [ ] create a metric which calculates the amount of time between infection and sending a risk message above 10, and look at heuristicv1 and bdt1. - [ ] run pareto front - [ ] fix utils `copy_obj_except_env` will break baseball cards - [ ] plot p(covid | symptom) - [ ] prevalence estimation for covid - Tuning: - [ ] reduce at home contacts between high risk people - [ ] reduce mobility with orange level - [ ] subtract 4 instead of 5 in heuristic in messaging - [ ] fix presymptomatic plot for heuristic - Bugfixes: - [ ] go thru and answer their questions https://docs.google.com/document/d/1QE05BBJI-zD0Qt08_O72y2iFb6LJP-35DOC-xD0AMPU/edit#heading=h.oa0aoxa5nsgw - Experiments: - [ ] pareto plot where we vary global mobility (as x-axis) - DevOps: - [ ] Do a pass of open issues - Parallelism / Real-world maps - [ ] Partition graph in [CityGraph](https://github.com/MPI-IS/CityGraph) for multiprocessing - [ ] Decide whether we 1) use CityGraph as an imported package and heavily modify it, 2) install it from source and heavily modify it, 3) re-implement some of its functionality in our codebase. Need to do a huge merge of City and Location. ### Akshay - [ ] Add more pre-existing conditions (heart disease, diabetes, obesity, smoking and chronic kidney disease). You can find the [% on p.26 of the shared google doc](https://docs.google.com/document/d/1QE05BBJI-zD0Qt08_O72y2iFb6LJP-35DOC-xD0AMPU/edit), under "Prevalence in the general population" \ - [ ] Symptoms translate to markov chain - [ ] Implement dynamic change in mixing to align with real-world data ### Victor ### Meng - [ ] Replace effective contacts with risky contacts in pareto plot - [ ] Squash columns to have presymptomatic, susceptible and delta as different colored bars ### Prateek - [ ] hospital numbers - [ ] school numbers - [x] Submit PR for contact mixing changes - [x] Fix interventions - [x] Tune the sim for interventions ### Tegan - [ ] Update/fix symptoms and pre-existing conditions (if-statement version) - [ ] Fix clipping of infectiousness_onset (and incubation_days?) - [ ] shift and reduce mean instead of clipping - [ ] check beta with Eilif - [ ] “Cohort Ro” look at % infected for has_app vs not - [ ] Run with heuristic to see if above changes are "significant", possibly merge for arxiv version ### Nasim - [ ] add dropin to simulator - [ ] hold adoption stationary at 60% and vary GLOBAL_MOBILITY_SCALING_FACTOR between 0.001 and 1. then plot it ## Alg - Estimate prevalence of disease using predicted infectiousness (sort of similar to GAEN ML server counter) - (1 - prevalence) * some hyperparameter gives us proportion of population which is not in jail. "how agressive is the policy" - Take histogram of infectiousness and select the threshold which produces the corret number of "green" level - proportion of rec level 1 vs 2 and 3 are additional hyper-parameters - Experiments: - [ ] Find out if predicting Viral Load and multiplier separately helps (need plotting scripts for eval in the loop) - [ ] Find out if factorizing $P(C | D, Data) = P(C | D) P(D | Data)$ helps, where $C$ is contagiousness, $D$ is days since exposure and $Data$ includes contacts, PEC, symptoms, etc. - [ ] Integrate city-wide hospitalizations and case counts into predictor and train model - [ ] Integrate GT prevalence into predictor and train model ### Eilif - Write Cisco Grant (pair w/ martin) DONE: - [x] debug current pareto plots - [x] integrate wandb with plot scripts - [x] remove plots each run - [x] have plot dir - [x] add way to compare multiple transformers with different weights and/or rec level maps - [x] enable Transformer and Oracle pareto plots to work - [x] Get datasets to nasim for retraining (narrower DR, no DR, perfect clustering) - [x] Fix legend / colors in pareto all_adoption - [x] expand width of pareto adoption figure - [x] make jellybean uptake 2 wide - [x] make pre-symptomatic plot be allowed to select just 1 vertical - [x] Create an example experiment (markdown + images) on hackmd - [x] integrate SpyHumansPro notebook with victor scripts - [x] create a new metric which assigns a weight to each recommendation and computes the (number of infections in unmitigated - current method) / weighted restriction - [x] be able to run `python src/covid19sim/job_scripts/random_search.py exp_file=app_adoption weights_dir=/home/mweiss10/scratch/weights/ outdir=/home/mweiss10/simulator/results/pop2/40k` but for _each_ experiment. Like get to run this 1 time for a bunch of exps. - [x] Run unmitigated with 1k, 3k, 5k, 10k, 20k population - [x] Compare TWILIGHT-RAIN experiments with Refactor branch results to ensure I didn't break anything (so we can merge it) - [x] fix normalization script - [x] visualize double stuffed transformer - [x] move repo from covi-canada to mila-iqia (!!!) - [x] Create wiki page for writeup of v1 efficiency metric - [x] add plot_generation_time.py and plot_epi_table.py to main.py - [x] do a pass of open experiments - [x] Run Nasim's transformers - [x] run experiment with no covid - [x] fix tests - [x] Get akshay added to repository - [x] fix jellybean width issue - [x] visualize normalized plots - [x] normalize nasim's transformers - [x] Visualize nasim's transformers - [x] visualize no covid experiment - [x] merge more PRs - [x] mkdir jellybeans and pareto_adoption in plotting - [x] autogenerate markdown report - [x] Download the repository and get it running (and ask martin if it doesn't work) - [x] Load and visualize the [historical case and hospitalization counts for montreal](https://docs.google.com/spreadsheets/d/1F98IwKdO5dDdhhALnURsANPCqS6AP6uCYeqsX0JoArI/edit#gid=1889102279) - [x] mkdir jellybeans and pareto_adoption in plotting - [x] Make decision about changing performance (prs) - [x] write script to go through each run on beluga, make a directory named pop_10000_sick_002_mobility_02/ and write the images into it. Need to go in srun for it - [x] merge https://github.com/mila-iqia/covi-simulator/pull/8 but also add a second path for writing out datasets. or ask nasim to add an hdf5 reader - [x] vary init percent sick and GLOBAL_MOBILITY for 10k pop (running) - [x] merge https://github.com/mila-iqia/covi-simulator/pull/25 and https://github.com/mila-iqia/covi-simulator/pull/26 - [x] Integrate baseball cards - [x] Writeup wiki for infection chains - [x] make baseball cards for people in the infetion chains - [x] replace p_never recovers with [this table]( https://www.quebec.ca/en/health/health-issues/a-z/2019-coronavirus/situation-coronavirus-in-quebec/#c63033) and fix document / citation - [x] Reduce memory consumption of infection chain plot - [x] Add plot of day of infection of the infector (like generation times) - [x] Writeup report on Heuristic with baseball cards - [x] Add infection chains and baseball plots to exps - [x] Heuristic - should take max over risk levels (symptoms, received messages) - [x] plotting: - [x] put the severity of symptoms in the infection chain plot - [x] observed symptoms instead of true - [x] pull more chains (10) - [x] get random chain should have more randomness (don't get first) - [x] fix viral load clipping (generation time) - [x] re-run pareto plots experiment (bdt1, heuristicv1) - [x] make a new debug report - [x] finish writing tests - [x] update algorithm and pseudocode from yoshua's comments - [x] re-generate debug datasets - [x] fix presymptomatic plot printing - [x] run normalization on aggregate stats on beluga - [x] finish pareto plot with global scaling (push it) - [x] Squash columns to have presymptomatic, susceptible and delta as different colored bars - [x] add symptom dropin to main simulator - [x] write two paragraphs and send to joanna - [x] skip broken tests (that will take a long time and add a list of these) - [x] fix the fucking github actions shit - [x] glass-box test reza's code and merge https://github.com/mila-iqia/covi-simulator/pull/56 - [x] fix nasim's tests and merge his PR - [x] fix tests on prateeks - [x] review tegan's PR - [x] wait for prateek to push his change to fix an assertion error - [x] merge with develop - [x] run main/ debug plots ## Exp analysis - pop2/ (exp name) - 1k (setting 1) - 2k (setting 2) - 5k (setting 3) - 10k (setting 4) - Param: n_people - transformers/ (exp name) - rosy-012 (setting 1) - twilight-012 (setting 2) - vague-012 (setting 3) - Param: transformer weight - rec_level/ (exp name) - bdt1/ - heuristiv1/ - oracle/ - twilight-000 - twilight-012 - twilight-135 - Param: method / weight ### Joanna notes - Asymptomatic / symptomatic changes the false negative rate of testing - viral load affects false negative rate - people with severe symptoms who have a negative covid test will be treated as positive - healthcare workers and asymptomatic people (random) should be tested. - testing will be dependent on what stage of the epidemic we are at (check joanna's docs) ### Meeting July 30 - RL / pareto metrics - square of reduction of # contacts - the # of symptomatic effects - productivity? mental health? - for any intervention, difference in the "extreme" benchmark values, e.g. %use of mask = 0% in unmitigated, 50% now, scale all these by the same coeff. which represents # - masking - social distance - handwashing (?) -