diff --git a/cara/models.py b/cara/models.py index 26cbf548..d3b6df13 100644 --- a/cara/models.py +++ b/cara/models.py @@ -459,7 +459,9 @@ class SARSCoV2(Virus): CERN-OPEN-2021-004, DOI: 10.17181/CERN.1GDQ.5Y75) """ halflife = np.empty_like(humidity) - halflife[humidity <= 0.4] = 3.8 + # Taken from Morris et al (https://doi.org/10.7554/eLife.65902) data at T = 22°C and RH = 40 %. + halflife[humidity <= 0.4] = 6.43 + # Taken from Doremalen et al (https://www.nejm.org/doi/10.1056/NEJMc2004973). halflife[humidity > 0.4] = 1.1 return halflife diff --git a/cara/monte_carlo/data.py b/cara/monte_carlo/data.py index ea4977b1..47f0f901 100644 --- a/cara/monte_carlo/data.py +++ b/cara/monte_carlo/data.py @@ -99,8 +99,9 @@ symptomatic_vl_frequencies = LogCustomKernel( kernel_bandwidth=0.1 ) -# From https://doi.org/10.1093/cid/ciaa1579 -viable_to_RNA_ratio_distribution = Uniform(0.15, 0.45) +# Derived from data in doi.org/10.1016/j.ijid.2020.09.025 and +# https://iosh.com/media/8432/aerosol-infection-risk-hospital-patient-care-full-report.pdf (page 60) +viable_to_RNA_ratio_distribution = Uniform(0.01, 0.6) # From discussion with virologists infectious_dose_distribution = Uniform(10., 100.) diff --git a/cara/tests/test_monte_carlo_full_models.py b/cara/tests/test_monte_carlo_full_models.py index 7a644e37..93e36bb6 100644 --- a/cara/tests/test_monte_carlo_full_models.py +++ b/cara/tests/test_monte_carlo_full_models.py @@ -282,9 +282,9 @@ def waiting_room_mc(): "mc_model, expected_pi, expected_new_cases, expected_dose, expected_ER", [ ["shared_office_mc", 6.03, 0.18, 24.55, 809], - ["classroom_mc", 10.0, 2.0, 79.98, 5624], - ["ski_cabin_mc", 17.0, 0.5, 40.25, 7966], - ["skagit_chorale_mc",70, 42.5, 241.28, 190422], + ["classroom_mc", 10.0, 1.85, 79.98, 5624], + ["ski_cabin_mc", 16.0, 0.5, 40.25, 7966], + ["skagit_chorale_mc",65.7, 40.0, 241.28, 190422], ["bus_ride_mc", 12.0, 8.0, 63.79, 5419], ["gym_mc", 0.45, 0.13, 0.4852, 1145], ["waiting_room_mc", 1.59, 0.22, 7.23, 737], @@ -308,10 +308,10 @@ def test_report_models(mc_model, expected_pi, expected_new_cases, @pytest.mark.parametrize( "mask_type, month, expected_pi, expected_dose, expected_ER", [ - ["No mask", "Jul", 10.02, 84.54, 809], + ["No mask", "Jul", 9.52, 84.54, 809], ["Type I", "Jul", 1.7, 15.64, 149], ["FFP2", "Jul", 0.51, 15.64, 149], - ["Type I", "Feb", 0.57, 4.59, 149], + ["Type I", "Feb", 0.57, 4.59, 162], ], ) def test_small_shared_office_Geneva(mask_type, month, expected_pi,