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:
commit
a93a4a3e40
8 changed files with 47 additions and 31 deletions
|
|
@ -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'}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
),
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
),
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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.,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Reference in a new issue