diff --git a/cara/model_scenarios_paper.py b/cara/model_scenarios_paper.py index 608d86ea..ea717244 100644 --- a/cara/model_scenarios_paper.py +++ b/cara/model_scenarios_paper.py @@ -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),)), diff --git a/cara/models.py b/cara/models.py index 8c5ceee1..8ebde1ae 100644 --- a/cara/models.py +++ b/cara/models.py @@ -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 diff --git a/cara/monte_carlo/data.py b/cara/monte_carlo/data.py index 759e8c06..bbd74606 100644 --- a/cara/monte_carlo/data.py +++ b/cara/monte_carlo/data.py @@ -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, ), }