Reproducing Lim et al. 2020
  • Original study
  • Reproduction
    • README
    • Reformat the tables
    • Reproduction
  • Evaluation
    • Scope
    • Reproduction success
    • Journal badges
    • STARS framework
    • Reporting guidelines
  • Logbook
  • Summary
  • Reflections

On this page

  • Study
  • Computational reproducibility
  • Evaluation against guidelines
  • Edit this page
  • Report an issue

Summary report

For computational reproducibility assessment of Lim et al. 2020

Study

Lim CY, Bohn MK, Lippi G, Ferrari M, Loh TP, Yuen K, Adeli K, Horvath AR Staff Rostering, Split Team Arrangement, Social Distancing (Physical Distancing) and Use of Personal Protective Equipment to Minimize Risk of Workplace Transmission During the COVID-19 Pandemic: A Simulation Study. Clinical Biochemistry 86:15-22 (2020). https://doi.org/10.1016/j.clinbiochem.2020.09.003.

This is a discrete-event simulation modelling the transmission of COVID-19 in laboratory. It examines the proportion of staff infected in scenarios varying the: number of shifts per day; number of staff per shift; overall staff pool; shift patterns; secondary attack rate of the virus; introduction of protective measures (social distancing and personal protective equipment). The model is created using Python.

Images from the original study on this page are soruced from Lim et al. (2020)

Computational reproducibility

Successfully reproduced 9 out of 9 (100%) of items from the scope in 12h 27m (31.1%).

Required troubleshooting:

  • Tables - convert to .csv and long format
  • Environment - identify appropriate versions and create environment file
  • Model run time - add parallel processing to help reduce it
  • Set up model so scenarios can be run programmatically - as function inputs rather than hard-coded values in the model script
  • Adding parameters and scenarios - modifying existing parameters, switching hard-coded parameters to function inputs, or modifying code (e.g. adding conditional logic to skip or change what code is run)
  • Create figures - from scratch as no code provided
  • Figure 2
  • Figure 3
  • Figure 4
  • Figure 5
  • Supplemental Table 2
  • Supplemental Table 3
  • Supplemental Table 4
  • Supplemental Table 5
  • Supplemental Table 6

Original Reproduction

Original Reproduction

Original Reproduction

Original Reproduction

'Preview of original'
end_of_day shifts_per_day staff_per_shift strength staff_change prop_infected
0 7 1.0 5.0 2 1 0.20
1 7 1.0 5.0 2 3 0.20
2 7 1.0 5.0 2 7 0.30
3 7 1.0 5.0 2 14 0.40
4 7 1.0 5.0 2 21 0.30
5 7 1.0 5.0 4 1 0.10
6 7 1.0 5.0 4 3 0.10
7 7 1.0 5.0 4 7 0.20
8 7 1.0 5.0 4 14 0.20
9 7 1.0 5.0 4 21 0.15
'Preview of reproduction'
end_of_day shifts_per_day staff_per_shift strength staff_change prop_infected
0 7 1 5 2 1 0.20
12 7 1 5 2 3 0.20
24 7 1 5 2 7 0.40
36 7 1 5 2 14 0.30
48 7 1 5 2 21 0.30
60 7 1 5 4 1 0.05
72 7 1 5 4 3 0.10
84 7 1 5 4 7 0.15
96 7 1 5 4 14 0.15
108 7 1 5 4 21 0.15
'Absolute differences in proportion infected between tables'
count    420.000000
mean       0.008405
std        0.017549
min        0.000000
25%        0.000000
50%        0.000000
75%        0.010000
max        0.100000
Name: diff, dtype: float64
'Preview of original'
end_of_day shifts_per_day staff_per_shift strength staff_change prop_infected
0 7 1.0 5.0 2 1 0.10
1 7 1.0 5.0 2 3 0.10
2 7 1.0 5.0 2 7 0.20
3 7 1.0 5.0 2 14 0.10
4 7 1.0 5.0 2 21 0.20
5 7 1.0 5.0 4 1 0.05
6 7 1.0 5.0 4 3 0.05
7 7 1.0 5.0 4 7 0.10
8 7 1.0 5.0 4 14 0.05
9 7 1.0 5.0 4 21 0.05
'Preview of reproduction'
end_of_day shifts_per_day staff_per_shift strength staff_change prop_infected
0 7 1 5 2 1 0.10
12 7 1 5 2 3 0.10
24 7 1 5 2 7 0.10
36 7 1 5 2 14 0.10
48 7 1 5 2 21 0.10
60 7 1 5 4 1 0.05
72 7 1 5 4 3 0.05
84 7 1 5 4 7 0.05
96 7 1 5 4 14 0.05
108 7 1 5 4 21 0.05
'Absolute differences in proportion infected between tables'
count    420.000000
mean       0.009905
std        0.017464
min        0.000000
25%        0.000000
50%        0.000000
75%        0.010000
max        0.100000
Name: diff, dtype: float64
'Preview of original'
end_of_day shifts_per_day staff_per_shift strength staff_change prop_infected
0 7 1.0 5.0 2 1 0.40
1 7 1.0 5.0 2 3 0.30
2 7 1.0 5.0 2 7 0.50
3 7 1.0 5.0 2 14 0.50
4 7 1.0 5.0 2 21 0.50
5 7 1.0 5.0 4 1 0.10
6 7 1.0 5.0 4 3 0.20
7 7 1.0 5.0 4 7 0.25
8 7 1.0 5.0 4 14 0.25
9 7 1.0 5.0 4 21 0.25
'Preview of reproduction'
end_of_day shifts_per_day staff_per_shift strength staff_change prop_infected
0 7 1 5 2 1 0.40
12 7 1 5 2 3 0.40
24 7 1 5 2 7 0.50
36 7 1 5 2 14 0.50
48 7 1 5 2 21 0.50
60 7 1 5 4 1 0.10
72 7 1 5 4 3 0.17
84 7 1 5 4 7 0.25
96 7 1 5 4 14 0.25
108 7 1 5 4 21 0.25
'Absolute differences in proportion infected between tables'
count    420.000000
mean       0.004762
std        0.012765
min        0.000000
25%        0.000000
50%        0.000000
75%        0.000000
max        0.120000
Name: diff, dtype: float64
'Preview of original'
end_of_day shifts_per_day staff_per_shift strength staff_change prop_infected
0 7 1.0 5.0 2 1 0.25
1 7 1.0 5.0 2 3 0.30
2 7 1.0 5.0 2 7 0.30
3 7 1.0 5.0 2 14 0.30
4 7 1.0 5.0 2 21 0.40
5 7 1.0 5.0 4 1 0.10
6 7 1.0 5.0 4 3 0.10
7 7 1.0 5.0 4 7 0.15
8 7 1.0 5.0 4 14 0.15
9 7 1.0 5.0 4 21 0.15
'Preview of reproduction'
end_of_day shifts_per_day staff_per_shift strength staff_change prop_infected
0 7 1 5 2 1 0.20
4 7 1 5 2 3 0.30
8 7 1 5 2 7 0.30
12 7 1 5 2 14 0.40
16 7 1 5 2 21 0.30
20 7 1 5 4 1 0.05
24 7 1 5 4 3 0.10
28 7 1 5 4 7 0.15
32 7 1 5 4 14 0.15
36 7 1 5 4 21 0.15
'Absolute differences in proportion infected between tables'
count    180.000000
mean       0.012056
std        0.022614
min        0.000000
25%        0.000000
50%        0.000000
75%        0.020000
max        0.100000
Name: diff, dtype: float64
'Preview of original'
workplace_measure shifts_per_day staff_per_shift strength staff_change prop_infected
0 Gloves 1.0 5.0 2 1 0.20
1 Gloves 1.0 5.0 2 3 0.20
2 Gloves 1.0 5.0 2 7 0.20
3 Gloves 1.0 5.0 2 14 0.30
4 Gloves 1.0 5.0 2 21 0.30
5 Gloves 1.0 5.0 4 1 0.05
6 Gloves 1.0 5.0 4 3 0.05
7 Gloves 1.0 5.0 4 7 0.10
8 Gloves 1.0 5.0 4 14 0.15
9 Gloves 1.0 5.0 4 21 0.15
'Preview of reproduction'
workplace_measure shifts_per_day staff_per_shift strength staff_change prop_infected
180 Gloves 1 5 2 1 0.20
192 Gloves 1 5 2 3 0.20
204 Gloves 1 5 2 7 0.20
216 Gloves 1 5 2 14 0.30
228 Gloves 1 5 2 21 0.30
240 Gloves 1 5 4 1 0.05
252 Gloves 1 5 4 3 0.05
264 Gloves 1 5 4 7 0.10
276 Gloves 1 5 4 14 0.15
288 Gloves 1 5 4 21 0.15
'Absolute differences in proportion infected between tables'
count    700.000000
mean       0.006214
std        0.011161
min        0.000000
25%        0.000000
50%        0.000000
75%        0.010000
max        0.050000
Name: diff, dtype: float64

Evaluation against guidelines

Context: The original study repository was evaluated against criteria from journal badges relating to how open and reproducible the model is and against guidance for sharing artefacts from the STARS framework. The original study article and supplementary materials (excluding code) were evaluated against reporting guidelines for DES models: STRESS-DES, and guidelines adapted from ISPOR-SDM.

References

Lim, Chun Yee, Mary Kathryn Bohn, Giuseppe Lippi, Maurizio Ferrari, Tze Ping Loh, Kwok-Yung Yuen, Khosrow Adeli, and Andrea Rita Horvath. 2020. “Staff Rostering, Split Team Arrangement, Social Distancing (Physical Distancing) and Use of Personal Protective Equipment to Minimize Risk of Workplace Transmission During the COVID-19 Pandemic: A Simulation Study.” Clinical Biochemistry 86 (December): 15–22. https://doi.org/10.1016/j.clinbiochem.2020.09.003.

STARS

  • Changelog

  • License

  • Contributing

  • Edit this page
  • Report an issue