Added uniform distribution to the infectious_dose

This commit is contained in:
Luis Aleixo 2021-09-15 10:58:33 +02:00
parent f50ce6d15b
commit 29f191dd2a
3 changed files with 26 additions and 21 deletions

View file

@ -1,5 +1,5 @@
from cara import models
from cara.monte_carlo.data import activity_distributions, symptomatic_vl_frequencies, infectious_virus_distribution
from cara.monte_carlo.data import activity_distributions, symptomatic_vl_frequencies, infectious_virus_distribution, infectious_dose_distribution
import cara.monte_carlo as mc
import numpy as np
@ -41,7 +41,7 @@ def breathing_exposure(activity: str, mask: str):
number=1,
virus=mc.Virus(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution
),
presence=mc.SpecificInterval(((0, 2),)),
@ -72,7 +72,7 @@ def speaking_exposure(activity: str, mask: str):
number=1,
virus=mc.Virus(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),
@ -103,7 +103,7 @@ def shouting_exposure(activity: str, mask: str):
number=1,
virus=mc.Virus(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),
@ -134,7 +134,7 @@ def breathing_exposure_vl(vl):
number=1,
virus=models.Virus(
viral_load_in_sputum=10**vl,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),
@ -165,7 +165,7 @@ def talking_exposure_vl(vl):
number=1,
virus=models.Virus(
viral_load_in_sputum=10**vl,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),
@ -196,7 +196,7 @@ def shouting_exposure_vl(vl):
number=1,
virus=mc.Virus(
viral_load_in_sputum=10**vl,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),
@ -228,7 +228,7 @@ def breathing_seated_exposure():
number=1,
virus=mc.Virus(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),
@ -258,7 +258,7 @@ def breathing_light_activity_exposure():
number=1,
virus=mc.Virus(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),
@ -288,7 +288,7 @@ def breathing_heavy_exercise_exposure():
number=1,
virus=mc.Virus(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),
@ -319,7 +319,7 @@ def speaking_seated_exposure():
number=1,
virus=mc.Virus(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),
@ -349,7 +349,7 @@ def speaking_light_activity_exposure():
number=1,
virus=mc.Virus(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),
@ -379,7 +379,7 @@ def speaking_heavy_exercise_exposure():
number=1,
virus=mc.Virus(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),
@ -410,7 +410,7 @@ def shouting_seated_exposure():
number=1,
virus=mc.Virus(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),
@ -440,7 +440,7 @@ def shouting_light_activity_exposure():
number=1,
virus=mc.Virus(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),
@ -470,7 +470,7 @@ def shouting_heavy_exercise_exposure():
number=1,
virus=mc.Virus(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=50.,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
presence=mc.SpecificInterval(((0, 2),)),

View file

@ -915,7 +915,11 @@ class ExposureModel:
repeats: int = 1
#: The fraction of viruses actually deposited in the respiratory tract
d = 1.37 # To be updated in the future.
"""
To be updated in the future.
The diameter value of 1.37 is the correspondent to a fraction_deposited of 0.6
"""
d = 1.37
IF = 1 - 0.5 * (1 - (1 / (1 + (0.00076*(d**2.8)))))
DF = IF * (0.0587 + (0.911/(1 + np.exp(4.77 + 1.485 * np.log(d)))) + (0.943/(1 + np.exp(0.508 - 2.58 * np.log(d)))))
fraction_deposited: _VectorisedFloat = DF

View file

@ -40,27 +40,28 @@ symptomatic_vl_frequencies = LogCustomKernel(
# From https://doi.org/10.1093/cid/ciaa1579
infectious_virus_distribution = Uniform(0.15, 0.45)
infectious_dose_distribution = Uniform(10., 100.)
# From CERN-OPEN-2021-04 and refererences therein
virus_distributions = {
'SARS_CoV_2': mc.SARSCoV2(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=100,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
'SARS_CoV_2_B117': mc.SARSCoV2(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=60,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
'SARS_CoV_2_P1': mc.SARSCoV2(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=100/2.25,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
'SARS_CoV_2_B16172': mc.SARSCoV2(
viral_load_in_sputum=symptomatic_vl_frequencies,
infectious_dose=60/1.6,
infectious_dose=infectious_dose_distribution,
viable_to_RNA=infectious_virus_distribution,
),
}