Added uniform distribution to the infectious_dose
This commit is contained in:
parent
f50ce6d15b
commit
29f191dd2a
3 changed files with 26 additions and 21 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
from cara import models
|
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 cara.monte_carlo as mc
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
@ -41,7 +41,7 @@ def breathing_exposure(activity: str, mask: str):
|
||||||
number=1,
|
number=1,
|
||||||
virus=mc.Virus(
|
virus=mc.Virus(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution
|
viable_to_RNA=infectious_virus_distribution
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -72,7 +72,7 @@ def speaking_exposure(activity: str, mask: str):
|
||||||
number=1,
|
number=1,
|
||||||
virus=mc.Virus(
|
virus=mc.Virus(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -103,7 +103,7 @@ def shouting_exposure(activity: str, mask: str):
|
||||||
number=1,
|
number=1,
|
||||||
virus=mc.Virus(
|
virus=mc.Virus(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -134,7 +134,7 @@ def breathing_exposure_vl(vl):
|
||||||
number=1,
|
number=1,
|
||||||
virus=models.Virus(
|
virus=models.Virus(
|
||||||
viral_load_in_sputum=10**vl,
|
viral_load_in_sputum=10**vl,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -165,7 +165,7 @@ def talking_exposure_vl(vl):
|
||||||
number=1,
|
number=1,
|
||||||
virus=models.Virus(
|
virus=models.Virus(
|
||||||
viral_load_in_sputum=10**vl,
|
viral_load_in_sputum=10**vl,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -196,7 +196,7 @@ def shouting_exposure_vl(vl):
|
||||||
number=1,
|
number=1,
|
||||||
virus=mc.Virus(
|
virus=mc.Virus(
|
||||||
viral_load_in_sputum=10**vl,
|
viral_load_in_sputum=10**vl,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -228,7 +228,7 @@ def breathing_seated_exposure():
|
||||||
number=1,
|
number=1,
|
||||||
virus=mc.Virus(
|
virus=mc.Virus(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -258,7 +258,7 @@ def breathing_light_activity_exposure():
|
||||||
number=1,
|
number=1,
|
||||||
virus=mc.Virus(
|
virus=mc.Virus(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -288,7 +288,7 @@ def breathing_heavy_exercise_exposure():
|
||||||
number=1,
|
number=1,
|
||||||
virus=mc.Virus(
|
virus=mc.Virus(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -319,7 +319,7 @@ def speaking_seated_exposure():
|
||||||
number=1,
|
number=1,
|
||||||
virus=mc.Virus(
|
virus=mc.Virus(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -349,7 +349,7 @@ def speaking_light_activity_exposure():
|
||||||
number=1,
|
number=1,
|
||||||
virus=mc.Virus(
|
virus=mc.Virus(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -379,7 +379,7 @@ def speaking_heavy_exercise_exposure():
|
||||||
number=1,
|
number=1,
|
||||||
virus=mc.Virus(
|
virus=mc.Virus(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -410,7 +410,7 @@ def shouting_seated_exposure():
|
||||||
number=1,
|
number=1,
|
||||||
virus=mc.Virus(
|
virus=mc.Virus(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -440,7 +440,7 @@ def shouting_light_activity_exposure():
|
||||||
number=1,
|
number=1,
|
||||||
virus=mc.Virus(
|
virus=mc.Virus(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
@ -470,7 +470,7 @@ def shouting_heavy_exercise_exposure():
|
||||||
number=1,
|
number=1,
|
||||||
virus=mc.Virus(
|
virus=mc.Virus(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=50.,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
presence=mc.SpecificInterval(((0, 2),)),
|
presence=mc.SpecificInterval(((0, 2),)),
|
||||||
|
|
|
||||||
|
|
@ -915,7 +915,11 @@ class ExposureModel:
|
||||||
repeats: int = 1
|
repeats: int = 1
|
||||||
|
|
||||||
#: The fraction of viruses actually deposited in the respiratory tract
|
#: 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)))))
|
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)))))
|
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
|
fraction_deposited: _VectorisedFloat = DF
|
||||||
|
|
|
||||||
|
|
@ -40,27 +40,28 @@ symptomatic_vl_frequencies = LogCustomKernel(
|
||||||
|
|
||||||
# From https://doi.org/10.1093/cid/ciaa1579
|
# From https://doi.org/10.1093/cid/ciaa1579
|
||||||
infectious_virus_distribution = Uniform(0.15, 0.45)
|
infectious_virus_distribution = Uniform(0.15, 0.45)
|
||||||
|
infectious_dose_distribution = Uniform(10., 100.)
|
||||||
|
|
||||||
# From CERN-OPEN-2021-04 and refererences therein
|
# From CERN-OPEN-2021-04 and refererences therein
|
||||||
virus_distributions = {
|
virus_distributions = {
|
||||||
'SARS_CoV_2': mc.SARSCoV2(
|
'SARS_CoV_2': mc.SARSCoV2(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=100,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
'SARS_CoV_2_B117': mc.SARSCoV2(
|
'SARS_CoV_2_B117': mc.SARSCoV2(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=60,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
'SARS_CoV_2_P1': mc.SARSCoV2(
|
'SARS_CoV_2_P1': mc.SARSCoV2(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=100/2.25,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
'SARS_CoV_2_B16172': mc.SARSCoV2(
|
'SARS_CoV_2_B16172': mc.SARSCoV2(
|
||||||
viral_load_in_sputum=symptomatic_vl_frequencies,
|
viral_load_in_sputum=symptomatic_vl_frequencies,
|
||||||
infectious_dose=60/1.6,
|
infectious_dose=infectious_dose_distribution,
|
||||||
viable_to_RNA=infectious_virus_distribution,
|
viable_to_RNA=infectious_virus_distribution,
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue