A simulation about mask wearing in public schools in the Greater Houston Area
Help improve this workflow!
This workflow has been published but could be further improved with some additional meta data:- Keyword(s) in categories input, output, operation
You can help improve this workflow by suggesting the addition or removal of keywords, suggest changes and report issues, or request to become a maintainer of the Workflow .
With increasing incidences of COVID-19 infections in the Greater Houston Area and students returning to school, informed decisions must be made regarding teacher and student continuous masking recommendations. As of today (August 21), 1. An executive order is in place which prohibits Texas government funded entities from mandating mask wearing on premises . 2. Houston ISD is one of a handful of schools in the Houston area which does have a mask wearing mandate in place. 3. Colleges in the our area have established differing policies. Notably, Rice University has COVID policies that mandate mask wearing indoors . To provide quantitative insight into these mixed stances, we ran a targeted simulation using our COVID-19 Outbreak Simulator to compare the number of COVID-cases that develop in schools that mandate or do not mandate mask wearing.
Code Snippets
88 89 | %cd #home/BoPeng/back-to-school/ res = read.csv('results.csv', check.names=FALSE) |
93 94 | library(ggplot2) library(gridExtra) |
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | res_1600 = res[res$`Community Infection Rate (per million)` == 1600, ] res_1600_cur_vac = rbind( res_1600[res_1600$`Vaccination Coverage (teachers / students)` == '60% / 30%',], res_1600[res_1600$`Vaccination Coverage (teachers / students)` == '60% / 0%',]) #geom_text(aes(hjust=0, vjust=0, # label=round(`Percentage of students infected at school`, 2)), # size=5) + #geom_errorbar(aes(ymin=`Percentage of students infected at school, 2.5% Quantile`, # ymax=`Percentage of students infected at school, 97.5% Quantile`), # colour="black", width=.1) + p1 <- ggplot(res_1600_cur_vac, aes(x=`Mask wearing %`, y=`Percentage of students infected at school`) ) + geom_point(aes(col=School), size=2) + theme(aspect.ratio = 1) + coord_cartesian(xlim=c(0, 100), ylim=c(0, 25)) + labs(title="Percentage of students infected at school") p2 <- ggplot(res_1600_cur_vac, aes(x=`Mask wearing %`, y=`Percentage of students isolated due to COVID symptoms`) ) + geom_point(aes(col=School), size=2) + theme(aspect.ratio = 1) + coord_cartesian(xlim=c(0, 100), ylim=c(0, 25)) + labs(title="Percentage of students isolated due to COVID symptoms" ) ggsave('school.png', plot=grid.arrange(p1, p2, nrow = 1), width=3000, height=1400, units='px', dpi=240) |
124 | %preview school.png |
269 270 271 | input: for_each=high_contexts scratch_dir = '#ictr-scratch/bpeng/back_to_school/' |
274 | task: queue='hpc', cores=4, walltime='1h', mem='4G', tags=name, workdir=scratch_dir, trunk_size=1 |
276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 | sh: expand=True #rm -f {name}.log.lock outbreak_simulator --popsize {pop_size} \ --stop-if 't>{duration}' -j 4 \ --track-events INFECTION WARNING PLUGIN SHOW_SYMPTOM QUARANTINE \ --repeat {num_replicates} --resume \ --symptomatic-r0 {sym_r0} T={distancing_multiplier} S={distancing_multiplier} \ --asymptomatic-r0 {asym_r0} T={distancing_multiplier} S={distancing_multiplier} \ --immunity-of-recovered {immunity_of_recovered} \ --infectivity-of-recovered {infectivity_of_recovered} \ --incubation-period {incu_period} \ --prop-asym-carriers {prop_asym_carriers} \ --handle-symptomatic 'quarantine?duration=10&infected=true' \ --logfile {name}.log \ --plugin init \ --incidence-rate {community_infection_rate} \ --seroprevalence {prop_recovered} --as-proportion \ --plugin vaccinate \ --start 0 --proportion {vac_proportion} --immunity {vac_immunity} \ --infectivity {vac_infectivity} \ --plugin community_infection --start 0 --interval 1 --probability {community_infection_rate} |
300 301 302 | input: for_each=elementary_contexts scratch_dir = '#ictr-scratch/bpeng/back_to_school/' |
305 | task: queue='hpc', cores=4, walltime='1h', mem='4G', tags=name, workdir=scratch_dir, trunk_size=1 |
307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 | sh: expand=True rm -f {name}.log.lock outbreak_simulator --popsize {pop_size} \ --stop-if 't>{duration}' -j 4 \ --track-events INFECTION WARNING PLUGIN SHOW_SYMPTOM QUARANTINE \ --vicinity 'T-S*=0.5' 'T-T=10' 'S*-!&=0.25' 'S*-&=19' 'S*-T=3' \ --repeat {num_replicates} \ --symptomatic-r0 {sym_r0} T={distancing_multiplier} 'S*={distancing_multiplier}' \ --asymptomatic-r0 {asym_r0} T={distancing_multiplier} 'S*={distancing_multiplier}' \ --immunity-of-recovered {immunity_of_recovered} \ --infectivity-of-recovered {infectivity_of_recovered} \ --incubation-period {incu_period} \ --prop-asym-carriers {prop_asym_carriers} \ --handle-symptomatic 'quarantine?duration=10&infected=true' \ --logfile {name}.log \ --plugin init \ --incidence-rate {community_infection_rate} \ --seroprevalence {prop_recovered} --as-proportion \ --plugin vaccinate \ --start 0 --proportion {vac_proportion} --immunity {vac_immunity} \ --infectivity {vac_infectivity} \ --plugin community_infection --start 0 --interval 1 --probability {community_infection_rate} |
Support
Files Included
-
back_to_school.ipynb
56.8 kB
- Future updates
Related Workflows

