A simulation about mask wearing in public schools in the Greater Houston Area

ictr ictr 1yr ago 0 bookmarks

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}
ShowHide 8 more snippets with no or duplicated tags.

Login to post a comment if you would like to share your experience with this workflow.

Do you know this workflow well? If so, you can request seller status and maintenance status of this workflow , and start supporting this workflow.

Free

Files Included

  • back_to_school.ipynb

    56.8 kB
Created: 1yr ago
Updated: 1yr ago
Maitainers: ictr
URL: https://ictr.github.io/back-to-school/
Name: back-to-school
Version: 1
Badge:
workflow icon

Insert copied code into your website to add a link to this workflow.

Accessed: 6
Downloaded: 0
Copyright: Public Domain
License: Creative Commons Zero v1.0 Universal
  • Future updates

Related Workflows

testfrequency
Frequency of COVID-19 testing to ensure workplace safety
In a population where there is a constant threat of community infection, there is a need to test everyone to ensure workplace...
quarantine
Effect of quarantine for the control of COVID19 outbreaks
From the result of the risk of COVID-19 outbreak in an enclosed environment , it was clear that it is risky to introduce ...