From 1eb9d85b24a26d47abed0e58517d1e9b232980a0 Mon Sep 17 00:00:00 2001
From: Luis Aleixo
Date: Fri, 24 Sep 2021 17:03:03 +0200
Subject: [PATCH 1/5] Changed transmissibility_factor for each virus
---
cara/monte_carlo/data.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/cara/monte_carlo/data.py b/cara/monte_carlo/data.py
index ea6a2349..4cb5f388 100644
--- a/cara/monte_carlo/data.py
+++ b/cara/monte_carlo/data.py
@@ -117,19 +117,19 @@ virus_distributions = {
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=infectious_dose_distribution,
viable_to_RNA_ratio=viable_to_RNA_ratio_distribution,
- transmissibility_factor=0.6,
+ transmissibility_factor=0.78,
),
'SARS_CoV_2_P1': mc.SARSCoV2(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=infectious_dose_distribution,
viable_to_RNA_ratio=viable_to_RNA_ratio_distribution,
- transmissibility_factor=0.45,
+ transmissibility_factor=0.72,
),
'SARS_CoV_2_B16172': mc.SARSCoV2(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=infectious_dose_distribution,
viable_to_RNA_ratio=viable_to_RNA_ratio_distribution,
- transmissibility_factor=0.38,
+ transmissibility_factor=0.51,
),
}
From 7a4e64c9b680a5b7d277fb845fa0bb38ded315ab Mon Sep 17 00:00:00 2001
From: Luis Aleixo
Date: Fri, 24 Sep 2021 17:27:35 +0200
Subject: [PATCH 2/5] Added Beta VOC
---
cara/apps/calculator/model_generator.py | 2 +-
.../templates/base/calculator.report.html.j2 | 2 ++
.../calculator/templates/calculator.form.html.j2 | 2 ++
cara/models.py | 12 +++++++++---
cara/monte_carlo/data.py | 6 ++++++
5 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/cara/apps/calculator/model_generator.py b/cara/apps/calculator/model_generator.py
index 6e4a5527..885b4500 100644
--- a/cara/apps/calculator/model_generator.py
+++ b/cara/apps/calculator/model_generator.py
@@ -699,7 +699,7 @@ MECHANICAL_VENTILATION_TYPES = {'mech_type_air_changes', 'mech_type_air_supply',
MASK_TYPES = {'Type I', 'FFP2'}
MASK_WEARING_OPTIONS = {'mask_on', 'mask_off'}
VENTILATION_TYPES = {'natural_ventilation', 'mechanical_ventilation', 'no_ventilation'}
-VIRUS_TYPES = {'SARS_CoV_2', 'SARS_CoV_2_B117', 'SARS_CoV_2_P1', 'SARS_CoV_2_B16172'}
+VIRUS_TYPES = {'SARS_CoV_2', 'SARS_CoV_2_B117', 'SARS_CoV_2_P1', 'SARS_CoV_2_B16172', 'SARS_CoV_2_B1351'}
VOLUME_TYPES = {'room_volume_explicit', 'room_volume_from_dimensions'}
WINDOWS_OPENING_REGIMES = {'windows_open_permanently', 'windows_open_periodically', 'not-applicable'}
WINDOWS_TYPES = {'window_sliding', 'window_hinged', 'not-applicable'}
diff --git a/cara/apps/calculator/templates/base/calculator.report.html.j2 b/cara/apps/calculator/templates/base/calculator.report.html.j2
index 146478dc..963eea31 100644
--- a/cara/apps/calculator/templates/base/calculator.report.html.j2
+++ b/cara/apps/calculator/templates/base/calculator.report.html.j2
@@ -195,6 +195,8 @@
SARS-CoV-2 (nominal strain)
{% elif form.virus_type == "SARS_CoV_2_B117" %}
SARS-CoV-2 (Alpha VOC)
+ {% elif form.virus_type == "SARS_CoV_2_SARS_CoV_2_B1351" %}
+ SARS-CoV-2 (Beta VOC)
{% elif form.virus_type == "SARS_CoV_2_P1" %}
SARS-CoV-2 (Gamma VOC)
{% elif form.virus_type == "SARS_CoV_2_B16172" %}
diff --git a/cara/apps/calculator/templates/calculator.form.html.j2 b/cara/apps/calculator/templates/calculator.form.html.j2
index 65391454..b570d85d 100644
--- a/cara/apps/calculator/templates/calculator.form.html.j2
+++ b/cara/apps/calculator/templates/calculator.form.html.j2
@@ -64,6 +64,7 @@ v{{ calculator_version }} Please sen
@@ -347,6 +348,7 @@ v{{ calculator_version }} Please sen
SARS-CoV-2 covers the original "wild type" strain of the virus and three variants of concern (VOC):
- Alpha (also known as B.1.1.7, first identified in UK, Dec 2020),
+ - Beta (also known as B.1.351, first identified in South Africa, Oct 2020).
- Gamma (also known as P.1, first identified in Brazil/Japan, Jan 2021).
- Delta (also known as B.1.617.2, first identified in India, Oct 2020).
diff --git a/cara/models.py b/cara/models.py
index 67d4c62a..1f8fe188 100644
--- a/cara/models.py
+++ b/cara/models.py
@@ -480,19 +480,25 @@ Virus.types = {
viral_load_in_sputum=1e9,
infectious_dose=50.,
viable_to_RNA_ratio = 0.5,
- transmissibility_factor=0.6,
+ transmissibility_factor=0.78,
),
+ 'SARS_CoV_2_B1351': SARSCoV2(
+ viral_load_in_sputum=1e9,
+ infectious_dose=50.,
+ viable_to_RNA_ratio=0.5,
+ transmissibility_factor=0.8,
+ ),
'SARS_CoV_2_P1': SARSCoV2(
viral_load_in_sputum=1e9,
infectious_dose=50.,
viable_to_RNA_ratio = 0.5,
- transmissibility_factor=0.45,
+ transmissibility_factor=0.72,
),
'SARS_CoV_2_B16172': SARSCoV2(
viral_load_in_sputum=1e9,
infectious_dose=50.,
viable_to_RNA_ratio = 0.5,
- transmissibility_factor=0.38,
+ transmissibility_factor=0.51,
),
}
diff --git a/cara/monte_carlo/data.py b/cara/monte_carlo/data.py
index 4cb5f388..1abddb91 100644
--- a/cara/monte_carlo/data.py
+++ b/cara/monte_carlo/data.py
@@ -119,6 +119,12 @@ virus_distributions = {
viable_to_RNA_ratio=viable_to_RNA_ratio_distribution,
transmissibility_factor=0.78,
),
+ 'SARS_CoV_2_B1351': mc.SARSCoV2(
+ viral_load_in_sputum=symptomatic_vl_frequencies,
+ infectious_dose=infectious_dose_distribution,
+ viable_to_RNA_ratio=viable_to_RNA_ratio_distribution,
+ transmissibility_factor=0.8,
+ ),
'SARS_CoV_2_P1': mc.SARSCoV2(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=infectious_dose_distribution,
From fe404bb374b03607f09e7554a8d4cf7a4a039428 Mon Sep 17 00:00:00 2001
From: Luis Aleixo
Date: Thu, 7 Oct 2021 15:19:55 +0200
Subject: [PATCH 3/5] Update VOCs references
---
.../calculator/templates/base/calculator.report.html.j2 | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/cara/apps/calculator/templates/base/calculator.report.html.j2 b/cara/apps/calculator/templates/base/calculator.report.html.j2
index 963eea31..5d9aaac4 100644
--- a/cara/apps/calculator/templates/base/calculator.report.html.j2
+++ b/cara/apps/calculator/templates/base/calculator.report.html.j2
@@ -194,13 +194,13 @@
{% if form.virus_type == "SARS_CoV_2" %}
SARS-CoV-2 (nominal strain)
{% elif form.virus_type == "SARS_CoV_2_B117" %}
- SARS-CoV-2 (Alpha VOC)
+ SARS-CoV-2 (Alpha VOC)
{% elif form.virus_type == "SARS_CoV_2_SARS_CoV_2_B1351" %}
- SARS-CoV-2 (Beta VOC)
+ SARS-CoV-2 (Beta VOC)
{% elif form.virus_type == "SARS_CoV_2_P1" %}
- SARS-CoV-2 (Gamma VOC)
+ SARS-CoV-2 (Gamma VOC)
{% elif form.virus_type == "SARS_CoV_2_B16172" %}
- SARS-CoV-2 (Delta VOC)
+ SARS-CoV-2 (Delta VOC)
{% endif %}
Room Volume: {{ model.concentration_model.room.volume }} m³
From 73b36b81db77ffb3003c919510efd3736ef86d15 Mon Sep 17 00:00:00 2001
From: Luis Aleixo
Date: Tue, 12 Oct 2021 09:55:44 +0200
Subject: [PATCH 4/5] Changed PANGO names to greek letters
---
cara/apps/calculator/model_generator.py | 2 +-
.../templates/base/calculator.report.html.j2 | 8 ++++----
.../calculator/templates/calculator.form.html.j2 | 8 ++++----
cara/models.py | 8 ++++----
cara/monte_carlo/data.py | 8 ++++----
cara/tests/models/test_exposure_model.py | 2 +-
cara/tests/test_monte_carlo_full_models.py | 12 ++++++------
cara/tests/test_predefined_distributions.py | 4 ++--
8 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/cara/apps/calculator/model_generator.py b/cara/apps/calculator/model_generator.py
index 885b4500..dbfd97f3 100644
--- a/cara/apps/calculator/model_generator.py
+++ b/cara/apps/calculator/model_generator.py
@@ -699,7 +699,7 @@ MECHANICAL_VENTILATION_TYPES = {'mech_type_air_changes', 'mech_type_air_supply',
MASK_TYPES = {'Type I', 'FFP2'}
MASK_WEARING_OPTIONS = {'mask_on', 'mask_off'}
VENTILATION_TYPES = {'natural_ventilation', 'mechanical_ventilation', 'no_ventilation'}
-VIRUS_TYPES = {'SARS_CoV_2', 'SARS_CoV_2_B117', 'SARS_CoV_2_P1', 'SARS_CoV_2_B16172', 'SARS_CoV_2_B1351'}
+VIRUS_TYPES = {'SARS_CoV_2', 'SARS_CoV_2_ALPHA', 'SARS_CoV_2_GAMMA', 'SARS_CoV_2_DELTA', 'SARS_CoV_2_BETA'}
VOLUME_TYPES = {'room_volume_explicit', 'room_volume_from_dimensions'}
WINDOWS_OPENING_REGIMES = {'windows_open_permanently', 'windows_open_periodically', 'not-applicable'}
WINDOWS_TYPES = {'window_sliding', 'window_hinged', 'not-applicable'}
diff --git a/cara/apps/calculator/templates/base/calculator.report.html.j2 b/cara/apps/calculator/templates/base/calculator.report.html.j2
index 5d9aaac4..795851fb 100644
--- a/cara/apps/calculator/templates/base/calculator.report.html.j2
+++ b/cara/apps/calculator/templates/base/calculator.report.html.j2
@@ -193,13 +193,13 @@
Virus variant:
{% if form.virus_type == "SARS_CoV_2" %}
SARS-CoV-2 (nominal strain)
- {% elif form.virus_type == "SARS_CoV_2_B117" %}
+ {% elif form.virus_type == "SARS_CoV_2_ALPHA" %}
SARS-CoV-2 (Alpha VOC)
- {% elif form.virus_type == "SARS_CoV_2_SARS_CoV_2_B1351" %}
+ {% elif form.virus_type == "SARS_CoV_2_SARS_CoV_2_BETA" %}
SARS-CoV-2 (Beta VOC)
- {% elif form.virus_type == "SARS_CoV_2_P1" %}
+ {% elif form.virus_type == "SARS_CoV_2_GAMMA" %}
SARS-CoV-2 (Gamma VOC)
- {% elif form.virus_type == "SARS_CoV_2_B16172" %}
+ {% elif form.virus_type == "SARS_CoV_2_DELTA" %}
SARS-CoV-2 (Delta VOC)
{% endif %}
diff --git a/cara/apps/calculator/templates/calculator.form.html.j2 b/cara/apps/calculator/templates/calculator.form.html.j2
index b570d85d..28d275eb 100644
--- a/cara/apps/calculator/templates/calculator.form.html.j2
+++ b/cara/apps/calculator/templates/calculator.form.html.j2
@@ -63,10 +63,10 @@ v{{ calculator_version }} Please sen
diff --git a/cara/models.py b/cara/models.py
index 1f8fe188..b7c1ff95 100644
--- a/cara/models.py
+++ b/cara/models.py
@@ -475,26 +475,26 @@ Virus.types = {
viable_to_RNA_ratio = 0.5,
transmissibility_factor=1.0,
),
- 'SARS_CoV_2_B117': SARSCoV2(
+ 'SARS_CoV_2_ALPHA': SARSCoV2(
# also called VOC-202012/01
viral_load_in_sputum=1e9,
infectious_dose=50.,
viable_to_RNA_ratio = 0.5,
transmissibility_factor=0.78,
),
- 'SARS_CoV_2_B1351': SARSCoV2(
+ 'SARS_CoV_2_BETA': SARSCoV2(
viral_load_in_sputum=1e9,
infectious_dose=50.,
viable_to_RNA_ratio=0.5,
transmissibility_factor=0.8,
),
- 'SARS_CoV_2_P1': SARSCoV2(
+ 'SARS_CoV_2_GAMMA': SARSCoV2(
viral_load_in_sputum=1e9,
infectious_dose=50.,
viable_to_RNA_ratio = 0.5,
transmissibility_factor=0.72,
),
- 'SARS_CoV_2_B16172': SARSCoV2(
+ 'SARS_CoV_2_DELTA': SARSCoV2(
viral_load_in_sputum=1e9,
infectious_dose=50.,
viable_to_RNA_ratio = 0.5,
diff --git a/cara/monte_carlo/data.py b/cara/monte_carlo/data.py
index 1abddb91..e4d23f8b 100644
--- a/cara/monte_carlo/data.py
+++ b/cara/monte_carlo/data.py
@@ -113,25 +113,25 @@ virus_distributions = {
viable_to_RNA_ratio=viable_to_RNA_ratio_distribution,
transmissibility_factor=1.,
),
- 'SARS_CoV_2_B117': mc.SARSCoV2(
+ 'SARS_CoV_2_ALPHA': mc.SARSCoV2(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=infectious_dose_distribution,
viable_to_RNA_ratio=viable_to_RNA_ratio_distribution,
transmissibility_factor=0.78,
),
- 'SARS_CoV_2_B1351': mc.SARSCoV2(
+ 'SARS_CoV_2_BETA': mc.SARSCoV2(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=infectious_dose_distribution,
viable_to_RNA_ratio=viable_to_RNA_ratio_distribution,
transmissibility_factor=0.8,
),
- 'SARS_CoV_2_P1': mc.SARSCoV2(
+ 'SARS_CoV_2_GAMMA': mc.SARSCoV2(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=infectious_dose_distribution,
viable_to_RNA_ratio=viable_to_RNA_ratio_distribution,
transmissibility_factor=0.72,
),
- 'SARS_CoV_2_B16172': mc.SARSCoV2(
+ 'SARS_CoV_2_DELTA': mc.SARSCoV2(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=infectious_dose_distribution,
viable_to_RNA_ratio=viable_to_RNA_ratio_distribution,
diff --git a/cara/tests/models/test_exposure_model.py b/cara/tests/models/test_exposure_model.py
index e120ad29..654a7858 100644
--- a/cara/tests/models/test_exposure_model.py
+++ b/cara/tests/models/test_exposure_model.py
@@ -64,7 +64,7 @@ def known_concentrations(func):
presence=halftime,
mask=models.Mask.types['Type I'],
activity=models.Activity.types['Standing'],
- virus=models.Virus.types['SARS_CoV_2_B117'],
+ virus=models.Virus.types['SARS_CoV_2_ALPHA'],
expiration=models.Expiration.types['Talking'],
host_immunity=0.,
)
diff --git a/cara/tests/test_monte_carlo_full_models.py b/cara/tests/test_monte_carlo_full_models.py
index bb3f283b..a0381723 100644
--- a/cara/tests/test_monte_carlo_full_models.py
+++ b/cara/tests/test_monte_carlo_full_models.py
@@ -40,7 +40,7 @@ def shared_office_mc():
),
infected=mc.InfectedPopulation(
number=1,
- virus=virus_distributions['SARS_CoV_2_B117'],
+ virus=virus_distributions['SARS_CoV_2_ALPHA'],
presence=mc.SpecificInterval(((0., 2.), (2.1, 4.), (5., 7.), (7.1, 9.))),
mask=models.Mask(η_inhale=0.3),
activity=activity_distributions['Seated'],
@@ -83,7 +83,7 @@ def classroom_mc():
),
infected=mc.InfectedPopulation(
number=1,
- virus=virus_distributions['SARS_CoV_2_B117'],
+ virus=virus_distributions['SARS_CoV_2_ALPHA'],
presence=mc.SpecificInterval(((0., 2.), (2.5, 4.), (5., 7.), (7.5, 9.))),
mask=models.Mask.types['No mask'],
activity=activity_distributions['Light activity'],
@@ -116,7 +116,7 @@ def ski_cabin_mc():
),
infected=mc.InfectedPopulation(
number=1,
- virus=virus_distributions['SARS_CoV_2_B117'],
+ virus=virus_distributions['SARS_CoV_2_ALPHA'],
presence=mc.SpecificInterval(((0., 1/3),)),
mask=models.Mask(η_inhale=0.3),
activity=activity_distributions['Moderate activity'],
@@ -151,7 +151,7 @@ def gym_mc():
),
infected=mc.InfectedPopulation(
number=2,
- virus=virus_distributions['SARS_CoV_2_B117'],
+ virus=virus_distributions['SARS_CoV_2_ALPHA'],
presence=mc.SpecificInterval(((0., 1.),)),
mask=models.Mask.types["No mask"],
activity=activity_distributions['Heavy exercise'],
@@ -185,7 +185,7 @@ def waiting_room_mc():
),
infected=mc.InfectedPopulation(
number=1,
- virus=virus_distributions['SARS_CoV_2_B117'],
+ virus=virus_distributions['SARS_CoV_2_ALPHA'],
presence=mc.SpecificInterval(((0., 2.),)),
mask=models.Mask.types["No mask"],
activity=activity_distributions['Seated'],
@@ -295,7 +295,7 @@ def test_small_shared_office_Geneva(mask_type, month, expected_pi,
),
infected=mc.InfectedPopulation(
number=1,
- virus=virus_distributions['SARS_CoV_2_B117'],
+ virus=virus_distributions['SARS_CoV_2_ALPHA'],
presence=mc.SpecificInterval(((9., 10+2/3), (10+5/6, 12.5), (13.5, 15+2/3), (15+5/6, 18.))),
mask=models.Mask.types[mask_type],
activity=activity_distributions['Seated'],
diff --git a/cara/tests/test_predefined_distributions.py b/cara/tests/test_predefined_distributions.py
index 4197b2fb..524cfcfe 100644
--- a/cara/tests/test_predefined_distributions.py
+++ b/cara/tests/test_predefined_distributions.py
@@ -36,9 +36,9 @@ def test_activity_distributions(distribution, mean, std):
"distribution, mean, std",[
['SARS_CoV_2', 6.59, 1.74],
- ['SARS_CoV_2_B117', 6.59, 1.74],
+ ['SARS_CoV_2_ALPHA', 6.59, 1.74],
- ['SARS_CoV_2_P1', 6.59, 1.74],
+ ['SARS_CoV_2_GAMMA', 6.59, 1.74],
]
)
def test_viral_load_logdistribution(distribution, mean, std):
From 8f601ef37c5dbafd6b9a40e0f2ec74d29af65b3c Mon Sep 17 00:00:00 2001
From: Luis Aleixo
Date: Tue, 12 Oct 2021 16:49:18 +0200
Subject: [PATCH 5/5] Bug on Betta VOC
---
cara/apps/calculator/templates/base/calculator.report.html.j2 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cara/apps/calculator/templates/base/calculator.report.html.j2 b/cara/apps/calculator/templates/base/calculator.report.html.j2
index 795851fb..88aec4af 100644
--- a/cara/apps/calculator/templates/base/calculator.report.html.j2
+++ b/cara/apps/calculator/templates/base/calculator.report.html.j2
@@ -195,7 +195,7 @@
SARS-CoV-2 (nominal strain)
{% elif form.virus_type == "SARS_CoV_2_ALPHA" %}
SARS-CoV-2 (Alpha VOC)
- {% elif form.virus_type == "SARS_CoV_2_SARS_CoV_2_BETA" %}
+ {% elif form.virus_type == "SARS_CoV_2_BETA" %}
SARS-CoV-2 (Beta VOC)
{% elif form.virus_type == "SARS_CoV_2_GAMMA" %}
SARS-CoV-2 (Gamma VOC)