Merge branch 'feature/t_factor_update' into 'feature/scientific_model_update'

Beta VOC and transmissibility factors update

See merge request cara/cara!265
This commit is contained in:
Andre Henriques 2021-10-12 18:20:39 +02:00
commit a93a4a3e40
8 changed files with 47 additions and 31 deletions

View file

@ -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_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'}

View file

@ -193,12 +193,14 @@
<li><p class="data_text">Virus variant:
{% if form.virus_type == "SARS_CoV_2" %}
SARS-CoV-2 (nominal strain)
{% elif form.virus_type == "SARS_CoV_2_B117" %}
<a href="https://www.ecdc.europa.eu/en/publications-data/covid-19-risk-assessment-spread-new-sars-cov-2-variants-eueea">SARS-CoV-2 (Alpha VOC) </a>
{% elif form.virus_type == "SARS_CoV_2_P1" %}
<a href="https://doi.org/10.1126/science.abh2644">SARS-CoV-2 (Gamma VOC)</a>
{% elif form.virus_type == "SARS_CoV_2_B16172" %}
<a href="https://www.bmj.com/content/373/bmj.n1513">SARS-CoV-2 (Delta VOC)</a>
{% elif form.virus_type == "SARS_CoV_2_ALPHA" %}
<a href="https://www.eurosurveillance.org/content/10.2807/1560-7917.ES.2021.26.24.2100509">SARS-CoV-2 (Alpha VOC) </a>
{% elif form.virus_type == "SARS_CoV_2_BETA" %}
<a href="https://www.eurosurveillance.org/content/10.2807/1560-7917.ES.2021.26.24.2100509">SARS-CoV-2 (Beta VOC)</a>
{% elif form.virus_type == "SARS_CoV_2_GAMMA" %}
<a href="https://www.eurosurveillance.org/content/10.2807/1560-7917.ES.2021.26.24.2100509">SARS-CoV-2 (Gamma VOC)</a>
{% elif form.virus_type == "SARS_CoV_2_DELTA" %}
<a href="https://www.eurosurveillance.org/content/10.2807/1560-7917.ES.2021.26.24.2100509">SARS-CoV-2 (Delta VOC)</a>
{% endif %}
</p></li>
<li><p class="data_text">Room Volume: {{ model.concentration_model.room.volume }} m³</p></li>

View file

@ -63,9 +63,10 @@ v{{ calculator_version }} <span style="float:right; font-weight:bold">Please sen
<label class="col-xl-3 col-lg-4 col-sm-3 col-form-label">Variant:</label>
<select id="Variant" name="virus_type" class="col-xl-5 col-lg-7 col-sm-7 col-7">
<option value="SARS_CoV_2">SARS-CoV-2 (nominal strain)</option>
<option value="SARS_CoV_2_B117">SARS-CoV-2 (Alpha VOC)</option>
<option value="SARS_CoV_2_P1">SARS-CoV-2 (Gamma VOC)</option>
<option selected value="SARS_CoV_2_B16172">SARS-CoV-2 (Delta VOC)</option>
<option value="SARS_CoV_2_ALPHA">SARS-CoV-2 (Alpha VOC)</option>
<option value="SARS_CoV_2_BETA">SARS-CoV-2 (Beta VOC)</option>
<option value="SARS_CoV_2_GAMMA">SARS-CoV-2 (Gamma VOC)</option>
<option selected value="SARS_CoV_2_DELTA">SARS-CoV-2 (Delta VOC)</option>
</select>
</div>
@ -347,6 +348,7 @@ v{{ calculator_version }} <span style="float:right; font-weight:bold">Please sen
SARS-CoV-2 covers the original "wild type" strain of the virus and three variants of concern (VOC):<br>
<ul>
<li>Alpha (also known as B.1.1.7, first identified in UK, Dec 2020),</li>
<li>Beta (also known as B.1.351, first identified in South Africa, Oct 2020).</li>
<li>Gamma (also known as P.1, first identified in Brazil/Japan, Jan 2021).</li>
<li>Delta (also known as B.1.617.2, first identified in India, Oct 2020).</li>
</ul>

View file

@ -475,24 +475,30 @@ 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.6,
transmissibility_factor=0.78,
),
'SARS_CoV_2_P1': 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_GAMMA': 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(
'SARS_CoV_2_DELTA': SARSCoV2(
viral_load_in_sputum=1e9,
infectious_dose=50.,
viable_to_RNA_ratio = 0.5,
transmissibility_factor=0.38,
transmissibility_factor=0.51,
),
}

View file

@ -113,23 +113,29 @@ 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.6,
transmissibility_factor=0.78,
),
'SARS_CoV_2_P1': 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.45,
transmissibility_factor=0.8,
),
'SARS_CoV_2_B16172': 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.38,
transmissibility_factor=0.72,
),
'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,
transmissibility_factor=0.51,
),
}

View file

@ -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.,
)

View file

@ -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'],

View file

@ -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):