Merge branch 'changes/caimira_schema_2.0.2' into 'master'
Changes to reflect schema update 2.0.2 See merge request caimira/caimira!497
This commit is contained in:
commit
e1a94b9067
4 changed files with 272 additions and 161 deletions
|
|
@ -208,7 +208,7 @@ class VirusFormData(FormData):
|
|||
humidity = float(self.humidity)
|
||||
inside_temp = self.inside_temp
|
||||
|
||||
return models.Room(volume=volume, inside_temp=models.PiecewiseConstant((0, 24), (inside_temp,)), humidity=humidity)
|
||||
return models.Room(volume=volume, inside_temp=models.PiecewiseConstant((0, 24), (inside_temp,)), humidity=humidity) # type: ignore
|
||||
|
||||
def build_mc_model(self) -> mc.ExposureModel:
|
||||
room = self.initialize_room()
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from enum import Enum
|
||||
|
||||
class ViralLoads(Enum):
|
||||
COVID_OVERALL = "Ref: Viral load - covid_overal_vl_data"
|
||||
SYMPTOMATIC_FREQUENCIES = "Ref: Viral load - symptomatic_vl_frequencies"
|
||||
COVID_OVERALL = "Ref: Viral load - covid overal viral load data"
|
||||
SYMPTOMATIC_FREQUENCIES = "Ref: Viral load - symptomatic viral load frequencies"
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ def evaluate_vl(root: typing.Dict, value: str, data_registry: DataRegistry):
|
|||
if root[value] == ViralLoads.COVID_OVERALL.value:
|
||||
return covid_overal_vl_data(data_registry)
|
||||
elif root[value] == ViralLoads.SYMPTOMATIC_FREQUENCIES.value:
|
||||
return symptomatic_vl_frequencies
|
||||
return symptomatic_vl_frequencies(data_registry)
|
||||
elif root[value] == 'Custom':
|
||||
return param_evaluation(root, 'Viral load custom')
|
||||
else:
|
||||
|
|
@ -66,11 +66,26 @@ def evaluate_custom_value_type(value_type: str, params: typing.Dict) -> typing.A
|
|||
if value_type == 'Constant value':
|
||||
return params
|
||||
elif value_type == 'Normal distribution':
|
||||
return Normal(params['normal_mean_gaussian'], params['normal_standard_deviation_gaussian'])
|
||||
return Normal(
|
||||
mean=params['normal_mean_gaussian'],
|
||||
standard_deviation=params['normal_standard_deviation_gaussian']
|
||||
)
|
||||
elif value_type == 'Log-normal distribution':
|
||||
return LogNormal(params['lognormal_mean_gaussian'], params['lognormal_standard_deviation_gaussian'])
|
||||
return LogNormal(
|
||||
mean_gaussian=params['lognormal_mean_gaussian'],
|
||||
standard_deviation_gaussian=params['lognormal_standard_deviation_gaussian']
|
||||
)
|
||||
elif value_type == 'Uniform distribution':
|
||||
return Uniform(params['low'], params['high'])
|
||||
return Uniform(
|
||||
low=params['low'],
|
||||
high=params['high']
|
||||
)
|
||||
elif value_type == 'Log Custom Kernel distribution':
|
||||
return LogCustomKernel(
|
||||
log_variable=np.array(params['log_variable']),
|
||||
frequencies=np.array(params['frequencies']),
|
||||
kernel_bandwidth=params['kernel_bandwidth']
|
||||
)
|
||||
else:
|
||||
raise ValueError('Bad request - value type not found.')
|
||||
|
||||
|
|
@ -211,11 +226,7 @@ def activity_distributions(data_registry):
|
|||
|
||||
# From https://doi.org/10.1101/2021.10.14.21264988 and references therein
|
||||
def symptomatic_vl_frequencies(data_registry):
|
||||
return LogCustomKernel(
|
||||
np.array(data_registry.virological_data['symptomatic_vl_frequencies']['log_variable']),
|
||||
np.array(data_registry.virological_data['symptomatic_vl_frequencies']['frequencies']),
|
||||
kernel_bandwidth=data_registry.virological_data['symptomatic_vl_frequencies']['kernel_bandwidth']
|
||||
)
|
||||
return param_evaluation(data_registry.virological_data, 'symptomatic_vl_frequencies')
|
||||
|
||||
|
||||
# Weibull distribution with a shape factor of 3.47 and a scale factor of 7.01.
|
||||
|
|
@ -224,34 +235,34 @@ def symptomatic_vl_frequencies(data_registry):
|
|||
def viral_load(data_registry):
|
||||
return np.linspace(
|
||||
weibull_min.ppf(
|
||||
data_registry.virological_data['covid_overal_vl_data']['start'],
|
||||
c=data_registry.virological_data['covid_overal_vl_data']['shape_factor'],
|
||||
scale=data_registry.virological_data['covid_overal_vl_data']['scale_factor']
|
||||
data_registry.virological_data['covid_overal_vl_data']['parameters']['start'],
|
||||
c=data_registry.virological_data['covid_overal_vl_data']['parameters']['shape_factor'],
|
||||
scale=data_registry.virological_data['covid_overal_vl_data']['parameters']['scale_factor']
|
||||
),
|
||||
weibull_min.ppf(
|
||||
data_registry.virological_data['covid_overal_vl_data']['stop'],
|
||||
c=data_registry.virological_data['covid_overal_vl_data']['shape_factor'],
|
||||
scale=data_registry.virological_data['covid_overal_vl_data']['scale_factor']
|
||||
data_registry.virological_data['covid_overal_vl_data']['parameters']['stop'],
|
||||
c=data_registry.virological_data['covid_overal_vl_data']['parameters']['shape_factor'],
|
||||
scale=data_registry.virological_data['covid_overal_vl_data']['parameters']['scale_factor']
|
||||
),
|
||||
int(data_registry.virological_data['covid_overal_vl_data']['num'])
|
||||
int(data_registry.virological_data['covid_overal_vl_data']['parameters']['num'])
|
||||
)
|
||||
def frequencies_pdf(data_registry):
|
||||
return weibull_min.pdf(
|
||||
viral_load(data_registry),
|
||||
c=data_registry.virological_data['covid_overal_vl_data']['shape_factor'],
|
||||
scale=data_registry.virological_data['covid_overal_vl_data']['scale_factor']
|
||||
c=data_registry.virological_data['covid_overal_vl_data']['parameters']['shape_factor'],
|
||||
scale=data_registry.virological_data['covid_overal_vl_data']['parameters']['scale_factor']
|
||||
)
|
||||
def covid_overal_vl_data(data_registry):
|
||||
return LogCustom(
|
||||
bounds=(data_registry.virological_data['covid_overal_vl_data']['min_bound'], data_registry.virological_data['covid_overal_vl_data']['max_bound']),
|
||||
bounds=(data_registry.virological_data['covid_overal_vl_data']['parameters']['min_bound'], data_registry.virological_data['covid_overal_vl_data']['parameters']['max_bound']),
|
||||
function=lambda d: np.interp(
|
||||
d,
|
||||
viral_load(data_registry),
|
||||
frequencies_pdf(data_registry),
|
||||
data_registry.virological_data['covid_overal_vl_data']['interpolation_fp_left'],
|
||||
data_registry.virological_data['covid_overal_vl_data']['interpolation_fp_right']
|
||||
data_registry.virological_data['covid_overal_vl_data']['parameters']['interpolation_fp_left'],
|
||||
data_registry.virological_data['covid_overal_vl_data']['parameters']['interpolation_fp_right']
|
||||
),
|
||||
max_function=data_registry.virological_data['covid_overal_vl_data']['max_function']
|
||||
max_function=data_registry.virological_data['covid_overal_vl_data']['parameters']['max_function']
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -274,37 +285,43 @@ def virus_distributions(data_registry):
|
|||
viral_load_in_sputum=evaluate_vl(vd['SARS_CoV_2'], 'viral_load_in_sputum', data_registry),
|
||||
infectious_dose=param_evaluation(vd['SARS_CoV_2'], 'infectious_dose'),
|
||||
viable_to_RNA_ratio=param_evaluation(vd['SARS_CoV_2'], 'viable_to_RNA_ratio'),
|
||||
transmissibility_factor=vd['SARS_CoV_2']['transmissibility_factor'],
|
||||
transmissibility_factor=vd['SARS_CoV_2']['transmissibility_factor']['value'],
|
||||
infectiousness_days=vd['SARS_CoV_2']['infectiousness_days']['value'],
|
||||
),
|
||||
'SARS_CoV_2_ALPHA': mc.SARSCoV2(
|
||||
viral_load_in_sputum=evaluate_vl(vd['SARS_CoV_2_ALPHA'], 'viral_load_in_sputum', data_registry),
|
||||
infectious_dose=param_evaluation(vd['SARS_CoV_2_ALPHA'], 'infectious_dose'),
|
||||
viable_to_RNA_ratio=param_evaluation(vd['SARS_CoV_2_ALPHA'], 'viable_to_RNA_ratio'),
|
||||
transmissibility_factor=vd['SARS_CoV_2_ALPHA']['transmissibility_factor'],
|
||||
transmissibility_factor=vd['SARS_CoV_2_ALPHA']['transmissibility_factor']['value'],
|
||||
infectiousness_days=vd['SARS_CoV_2_ALPHA']['infectiousness_days']['value'],
|
||||
),
|
||||
'SARS_CoV_2_BETA': mc.SARSCoV2(
|
||||
viral_load_in_sputum=evaluate_vl(vd['SARS_CoV_2_BETA'], 'viral_load_in_sputum', data_registry),
|
||||
infectious_dose=param_evaluation(vd['SARS_CoV_2_BETA'], 'infectious_dose'),
|
||||
viable_to_RNA_ratio=param_evaluation(vd['SARS_CoV_2_BETA'], 'viable_to_RNA_ratio'),
|
||||
transmissibility_factor=vd['SARS_CoV_2_BETA']['transmissibility_factor'],
|
||||
transmissibility_factor=vd['SARS_CoV_2_BETA']['transmissibility_factor']['value'],
|
||||
infectiousness_days=vd['SARS_CoV_2_BETA']['infectiousness_days']['value'],
|
||||
),
|
||||
'SARS_CoV_2_GAMMA': mc.SARSCoV2(
|
||||
viral_load_in_sputum=evaluate_vl(vd['SARS_CoV_2_GAMMA'], 'viral_load_in_sputum', data_registry),
|
||||
infectious_dose=param_evaluation(vd['SARS_CoV_2_GAMMA'], 'infectious_dose'),
|
||||
viable_to_RNA_ratio=param_evaluation(vd['SARS_CoV_2_GAMMA'], 'viable_to_RNA_ratio'),
|
||||
transmissibility_factor=vd['SARS_CoV_2_GAMMA']['transmissibility_factor'],
|
||||
transmissibility_factor=vd['SARS_CoV_2_GAMMA']['transmissibility_factor']['value'],
|
||||
infectiousness_days=vd['SARS_CoV_2_GAMMA']['infectiousness_days']['value'],
|
||||
),
|
||||
'SARS_CoV_2_DELTA': mc.SARSCoV2(
|
||||
viral_load_in_sputum=evaluate_vl(vd['SARS_CoV_2_DELTA'], 'viral_load_in_sputum', data_registry),
|
||||
infectious_dose=param_evaluation(vd['SARS_CoV_2_DELTA'], 'infectious_dose'),
|
||||
viable_to_RNA_ratio=param_evaluation(vd['SARS_CoV_2_DELTA'], 'viable_to_RNA_ratio'),
|
||||
transmissibility_factor=vd['SARS_CoV_2_DELTA']['transmissibility_factor'],
|
||||
transmissibility_factor=vd['SARS_CoV_2_DELTA']['transmissibility_factor']['value'],
|
||||
infectiousness_days=vd['SARS_CoV_2_DELTA']['infectiousness_days']['value'],
|
||||
),
|
||||
'SARS_CoV_2_OMICRON': mc.SARSCoV2(
|
||||
viral_load_in_sputum=evaluate_vl(vd['SARS_CoV_2_OMICRON'], 'viral_load_in_sputum', data_registry),
|
||||
infectious_dose=param_evaluation(vd['SARS_CoV_2_OMICRON'], 'infectious_dose'),
|
||||
viable_to_RNA_ratio=param_evaluation(vd['SARS_CoV_2_OMICRON'], 'viable_to_RNA_ratio'),
|
||||
transmissibility_factor=vd['SARS_CoV_2_OMICRON']['transmissibility_factor'],
|
||||
transmissibility_factor=vd['SARS_CoV_2_OMICRON']['transmissibility_factor']['value'],
|
||||
infectiousness_days=vd['SARS_CoV_2_OMICRON']['infectiousness_days']['value'],
|
||||
),
|
||||
}
|
||||
|
||||
|
|
@ -321,21 +338,24 @@ def mask_distributions(data_registry):
|
|||
data_registry.mask_distributions['Type I'], 'η_inhale'),
|
||||
η_exhale=param_evaluation(
|
||||
data_registry.mask_distributions['Type I'], 'η_exhale')
|
||||
if data_registry.mask_distributions['Type I'].get('η_exhale') is not None else None
|
||||
if data_registry.mask_distributions['Type I'].get('η_exhale') is not None else None,
|
||||
factor_exhale=data_registry.mask_distributions['Type I']['factor_exhale']['value']
|
||||
),
|
||||
'FFP2': mc.Mask(
|
||||
η_inhale=param_evaluation(
|
||||
data_registry.mask_distributions['FFP2'], 'η_inhale'),
|
||||
η_exhale=param_evaluation(
|
||||
data_registry.mask_distributions['FFP2'], 'η_exhale')
|
||||
if data_registry.mask_distributions['FFP2'].get('η_exhale') is not None else None
|
||||
if data_registry.mask_distributions['FFP2'].get('η_exhale') is not None else None,
|
||||
factor_exhale=data_registry.mask_distributions['FFP2']['factor_exhale']['value']
|
||||
),
|
||||
'Cloth': mc.Mask(
|
||||
η_inhale=param_evaluation(
|
||||
data_registry.mask_distributions['Cloth'], 'η_inhale'),
|
||||
η_exhale=param_evaluation(
|
||||
data_registry.mask_distributions['Cloth'], 'η_exhale')
|
||||
if data_registry.mask_distributions['Cloth'].get('η_exhale') is not None else None
|
||||
if data_registry.mask_distributions['Cloth'].get('η_exhale') is not None else None,
|
||||
factor_exhale=data_registry.mask_distributions['Cloth']['factor_exhale']['value']
|
||||
),
|
||||
}
|
||||
|
||||
|
|
@ -399,8 +419,8 @@ def expiration_distributions(data_registry):
|
|||
exp_type: expiration_distribution(
|
||||
data_registry=data_registry,
|
||||
BLO_factors=BLO_factors,
|
||||
d_min=param_evaluation(data_registry.expiration_particle['long_range_expiration_distributions'], 'minimum_diameter'),
|
||||
d_max=param_evaluation(data_registry.expiration_particle['long_range_expiration_distributions'], 'maximum_diameter')
|
||||
d_min=param_evaluation(data_registry.expiration_particle['long_range_particle_diameter'], 'minimum_diameter'),
|
||||
d_max=param_evaluation(data_registry.expiration_particle['long_range_particle_diameter'], 'maximum_diameter')
|
||||
)
|
||||
for exp_type, BLO_factors in expiration_BLO_factors(data_registry).items()
|
||||
}
|
||||
|
|
@ -411,8 +431,8 @@ def short_range_expiration_distributions(data_registry):
|
|||
exp_type: expiration_distribution(
|
||||
data_registry=data_registry,
|
||||
BLO_factors=BLO_factors,
|
||||
d_min=param_evaluation(data_registry.expiration_particle['short_range_expiration_distributions'], 'minimum_diameter'),
|
||||
d_max=param_evaluation(data_registry.expiration_particle['short_range_expiration_distributions'], 'maximum_diameter')
|
||||
d_min=param_evaluation(data_registry.expiration_particle['short_range_particle_diameter'], 'minimum_diameter'),
|
||||
d_max=param_evaluation(data_registry.expiration_particle['short_range_particle_diameter'], 'maximum_diameter')
|
||||
)
|
||||
for exp_type, BLO_factors in expiration_BLO_factors(data_registry).items()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,28 +7,33 @@ class DataRegistry:
|
|||
version = None
|
||||
|
||||
expiration_particle = {
|
||||
"long_range_expiration_distributions": {
|
||||
"long_range_particle_diameter": {
|
||||
"minimum_diameter": 0.1,
|
||||
"maximum_diameter": 30,
|
||||
"references": "Morawska et al. (https://doi.org/10.1016/j.jaerosci.2008.11.002); Johnson et al. (https://doi.org/10.1016/j.jaerosci.2011.07.009).",
|
||||
},
|
||||
"short_range_expiration_distributions": {
|
||||
"short_range_particle_diameter": {
|
||||
"minimum_diameter": 0.1,
|
||||
"maximum_diameter": 100,
|
||||
"references": "Morawska et al. (https://doi.org/10.1016/j.jaerosci.2008.11.002); Johnson et al. (https://doi.org/10.1016/j.jaerosci.2011.07.009).",
|
||||
},
|
||||
"BLOmodel": {
|
||||
"cn": {"B": 0.06, "L": 0.2, "O": 0.0010008},
|
||||
"mu": {"B": 0.989541, "L": 1.38629, "O": 4.97673},
|
||||
"sigma": {"B": 0.262364, "L": 0.506818, "O": 0.585005},
|
||||
"references": "Morawska et al. (https://doi.org/10.1016/j.jaerosci.2008.11.002); Johnson et al. (https://doi.org/10.1016/j.jaerosci.2011.07.009).",
|
||||
},
|
||||
"expiration_BLO_factors": {
|
||||
"Breathing": {"B": 1., "L": 0., "O": 0., },
|
||||
"Speaking": {"B": 1., "L": 1., "O": 1., },
|
||||
"Singing": {"B": 1., "L": 5., "O": 5., },
|
||||
"Shouting": {"B": 1., "L": 5., "O": 5., },
|
||||
"references": "Morawska et al. (https://doi.org/10.1016/j.jaerosci.2008.11.002); Johnson et al. (https://doi.org/10.1016/j.jaerosci.2011.07.009).",
|
||||
},
|
||||
"particle": {
|
||||
"evaporation_factor": 0.3,
|
||||
}
|
||||
"references": "Marr et al. (https://doi.org/10.1098/rsif.2018.0298).",
|
||||
},
|
||||
}
|
||||
|
||||
activity_distributions = {
|
||||
|
|
@ -39,6 +44,7 @@ class DataRegistry:
|
|||
"lognormal_mean_gaussian": -0.6872121723362303,
|
||||
"lognormal_standard_deviation_gaussian": 0.10498338229297108,
|
||||
},
|
||||
"references": "Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
"exhalation_rate": {
|
||||
"associated_value": "Log-normal distribution",
|
||||
|
|
@ -46,6 +52,7 @@ class DataRegistry:
|
|||
"lognormal_mean_gaussian": -0.6872121723362303,
|
||||
"lognormal_standard_deviation_gaussian": 0.10498338229297108,
|
||||
},
|
||||
"references": "Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
},
|
||||
"Standing": {
|
||||
|
|
@ -55,6 +62,7 @@ class DataRegistry:
|
|||
"lognormal_mean_gaussian": -0.5742377578494785,
|
||||
"lognormal_standard_deviation_gaussian": 0.09373162411398223,
|
||||
},
|
||||
"references": "Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
"exhalation_rate": {
|
||||
"associated_value": "Log-normal distribution",
|
||||
|
|
@ -62,6 +70,7 @@ class DataRegistry:
|
|||
"lognormal_mean_gaussian": -0.5742377578494785,
|
||||
"lognormal_standard_deviation_gaussian": 0.09373162411398223,
|
||||
},
|
||||
"references": "Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
},
|
||||
"Light activity": {
|
||||
|
|
@ -71,6 +80,7 @@ class DataRegistry:
|
|||
"lognormal_mean_gaussian": 0.21380242785625422,
|
||||
"lognormal_standard_deviation_gaussian": 0.09435378091059601,
|
||||
},
|
||||
"references": "Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
"exhalation_rate": {
|
||||
"associated_value": "Log-normal distribution",
|
||||
|
|
@ -78,6 +88,7 @@ class DataRegistry:
|
|||
"lognormal_mean_gaussian": 0.21380242785625422,
|
||||
"lognormal_standard_deviation_gaussian": 0.09435378091059601,
|
||||
},
|
||||
"references": "Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
},
|
||||
"Moderate activity": {
|
||||
|
|
@ -87,6 +98,7 @@ class DataRegistry:
|
|||
"lognormal_mean_gaussian": 0.551771330362601,
|
||||
"lognormal_standard_deviation_gaussian": 0.1894616357138137,
|
||||
},
|
||||
"references": "Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
"exhalation_rate": {
|
||||
"associated_value": "Log-normal distribution",
|
||||
|
|
@ -94,6 +106,7 @@ class DataRegistry:
|
|||
"lognormal_mean_gaussian": 0.551771330362601,
|
||||
"lognormal_standard_deviation_gaussian": 0.1894616357138137,
|
||||
},
|
||||
"references": "Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
},
|
||||
"Heavy exercise": {
|
||||
|
|
@ -103,6 +116,7 @@ class DataRegistry:
|
|||
"lognormal_mean_gaussian": 1.1644665696723049,
|
||||
"lognormal_standard_deviation_gaussian": 0.21744554768657565,
|
||||
},
|
||||
"references": "Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
"exhalation_rate": {
|
||||
"associated_value": "Log-normal distribution",
|
||||
|
|
@ -110,105 +124,114 @@ class DataRegistry:
|
|||
"lognormal_mean_gaussian": 1.1644665696723049,
|
||||
"lognormal_standard_deviation_gaussian": 0.21744554768657565,
|
||||
},
|
||||
"references": "Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
virological_data = {
|
||||
"symptomatic_vl_frequencies": {
|
||||
"log_variable": [
|
||||
2.46032,
|
||||
2.67431,
|
||||
2.85434,
|
||||
3.06155,
|
||||
3.25856,
|
||||
3.47256,
|
||||
3.66957,
|
||||
3.85979,
|
||||
4.09927,
|
||||
4.27081,
|
||||
4.47631,
|
||||
4.66653,
|
||||
4.87204,
|
||||
5.10302,
|
||||
5.27456,
|
||||
5.46478,
|
||||
5.6533,
|
||||
5.88428,
|
||||
6.07281,
|
||||
6.30549,
|
||||
6.48552,
|
||||
6.64856,
|
||||
6.85407,
|
||||
7.10373,
|
||||
7.30075,
|
||||
7.47229,
|
||||
7.66081,
|
||||
7.85782,
|
||||
8.05653,
|
||||
8.27053,
|
||||
8.48453,
|
||||
8.65607,
|
||||
8.90573,
|
||||
9.06878,
|
||||
9.27429,
|
||||
9.473,
|
||||
9.66152,
|
||||
9.87552,
|
||||
],
|
||||
"frequencies": [
|
||||
0.001206885,
|
||||
0.007851618,
|
||||
0.008078144,
|
||||
0.01502491,
|
||||
0.013258014,
|
||||
0.018528495,
|
||||
0.020053765,
|
||||
0.021896167,
|
||||
0.022047184,
|
||||
0.018604005,
|
||||
0.01547796,
|
||||
0.018075445,
|
||||
0.021503523,
|
||||
0.022349217,
|
||||
0.025097721,
|
||||
0.032875078,
|
||||
0.030594727,
|
||||
0.032573045,
|
||||
0.034717482,
|
||||
0.034792991,
|
||||
0.033267721,
|
||||
0.042887485,
|
||||
0.036846816,
|
||||
0.03876473,
|
||||
0.045016819,
|
||||
0.040063473,
|
||||
0.04883754,
|
||||
0.043944602,
|
||||
0.048142864,
|
||||
0.041588741,
|
||||
0.048762031,
|
||||
0.027921732,
|
||||
0.033871788,
|
||||
0.022122693,
|
||||
0.016927718,
|
||||
0.008833228,
|
||||
0.00478598,
|
||||
0.002807662,
|
||||
],
|
||||
"kernel_bandwidth": 0.1,
|
||||
"associated_value": "Log Custom Kernel distribution",
|
||||
"parameters": {
|
||||
"log_variable": [
|
||||
2.46032,
|
||||
2.67431,
|
||||
2.85434,
|
||||
3.06155,
|
||||
3.25856,
|
||||
3.47256,
|
||||
3.66957,
|
||||
3.85979,
|
||||
4.09927,
|
||||
4.27081,
|
||||
4.47631,
|
||||
4.66653,
|
||||
4.87204,
|
||||
5.10302,
|
||||
5.27456,
|
||||
5.46478,
|
||||
5.6533,
|
||||
5.88428,
|
||||
6.07281,
|
||||
6.30549,
|
||||
6.48552,
|
||||
6.64856,
|
||||
6.85407,
|
||||
7.10373,
|
||||
7.30075,
|
||||
7.47229,
|
||||
7.66081,
|
||||
7.85782,
|
||||
8.05653,
|
||||
8.27053,
|
||||
8.48453,
|
||||
8.65607,
|
||||
8.90573,
|
||||
9.06878,
|
||||
9.27429,
|
||||
9.473,
|
||||
9.66152,
|
||||
9.87552,
|
||||
],
|
||||
"frequencies": [
|
||||
0.001206885,
|
||||
0.007851618,
|
||||
0.008078144,
|
||||
0.01502491,
|
||||
0.013258014,
|
||||
0.018528495,
|
||||
0.020053765,
|
||||
0.021896167,
|
||||
0.022047184,
|
||||
0.018604005,
|
||||
0.01547796,
|
||||
0.018075445,
|
||||
0.021503523,
|
||||
0.022349217,
|
||||
0.025097721,
|
||||
0.032875078,
|
||||
0.030594727,
|
||||
0.032573045,
|
||||
0.034717482,
|
||||
0.034792991,
|
||||
0.033267721,
|
||||
0.042887485,
|
||||
0.036846816,
|
||||
0.03876473,
|
||||
0.045016819,
|
||||
0.040063473,
|
||||
0.04883754,
|
||||
0.043944602,
|
||||
0.048142864,
|
||||
0.041588741,
|
||||
0.048762031,
|
||||
0.027921732,
|
||||
0.033871788,
|
||||
0.022122693,
|
||||
0.016927718,
|
||||
0.008833228,
|
||||
0.00478598,
|
||||
0.002807662,
|
||||
],
|
||||
"kernel_bandwidth": 0.1,
|
||||
},
|
||||
"references": "Henriques et al. (https://doi.org/10.1101/2021.10.14.21264988) and references therein.",
|
||||
},
|
||||
'covid_overal_vl_data': {
|
||||
"shape_factor": 3.47,
|
||||
"scale_factor": 7.01,
|
||||
"start": 0.01,
|
||||
"stop": 0.99,
|
||||
"num": 30.0,
|
||||
"min_bound": 2,
|
||||
"max_bound": 10,
|
||||
"interpolation_fp_left": 0,
|
||||
"interpolation_fp_right": 0,
|
||||
"max_function": 0.2,
|
||||
"covid_overal_vl_data": {
|
||||
"associated_value": "Weibull distribution",
|
||||
"parameters": {
|
||||
"shape_factor": 3.47,
|
||||
"scale_factor": 7.01,
|
||||
"start": 0.01,
|
||||
"stop": 0.99,
|
||||
"num": 30.0,
|
||||
"min_bound": 2,
|
||||
"max_bound": 10,
|
||||
"interpolation_fp_left": 0,
|
||||
"interpolation_fp_right": 0,
|
||||
"max_function": 0.2,
|
||||
},
|
||||
"references": "Chen et al. (https://elifesciences.org/articles/65774); First line of the figure in https://iiif.elifesciences.org/lax:65774%2Felife-65774-fig4-figsupp3-v2.tif/full/1500,/0/default.jpg.",
|
||||
},
|
||||
"virus_distributions": {
|
||||
"SARS_CoV_2": {
|
||||
|
|
@ -216,78 +239,126 @@ class DataRegistry:
|
|||
"infectious_dose": {
|
||||
"associated_value": "Uniform distribution",
|
||||
"parameters": {"low": 10, "high": 100},
|
||||
"references": "Lednicky et al. (https://doi.org/10.1016/j.ijid.2020.09.025); Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
"viable_to_RNA_ratio": {
|
||||
'associated_value': 'Uniform distribution',
|
||||
'parameters': {'low': 0.01, 'high': 0.6},
|
||||
"associated_value": "Uniform distribution",
|
||||
"parameters": {"low": 0.01, "high": 0.6},
|
||||
"references": "",
|
||||
},
|
||||
"transmissibility_factor": {
|
||||
"value": 1,
|
||||
"references": "Campbell et al. (https://doi.org/10.2807/1560-7917.ES.2021.26.24.2100509.)",
|
||||
},
|
||||
"infectiousness_days": {
|
||||
"value": 14,
|
||||
"references": "",
|
||||
},
|
||||
"transmissibility_factor": 1,
|
||||
"infectiousness_days": 14,
|
||||
},
|
||||
"SARS_CoV_2_ALPHA": {
|
||||
"viral_load_in_sputum": ViralLoads.COVID_OVERALL.value,
|
||||
"infectious_dose": {
|
||||
"associated_value": "Uniform distribution",
|
||||
"parameters": {"low": 10, "high": 100},
|
||||
"references": "Lednicky et al. (https://doi.org/10.1016/j.ijid.2020.09.025); Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
"viable_to_RNA_ratio": {
|
||||
'associated_value': 'Uniform distribution',
|
||||
'parameters': {'low': 0.01, 'high': 0.6},
|
||||
"associated_value": "Uniform distribution",
|
||||
"parameters": {"low": 0.01, "high": 0.6},
|
||||
"references": "",
|
||||
},
|
||||
"transmissibility_factor": {
|
||||
"value": 0.78,
|
||||
"references": "Campbell et al. (https://doi.org/10.2807/1560-7917.ES.2021.26.24.2100509.)",
|
||||
},
|
||||
"infectiousness_days": {
|
||||
"value": 14,
|
||||
"references": "",
|
||||
},
|
||||
"transmissibility_factor": 0.78,
|
||||
"infectiousness_days": 14,
|
||||
},
|
||||
"SARS_CoV_2_BETA": {
|
||||
"viral_load_in_sputum": ViralLoads.COVID_OVERALL.value,
|
||||
"infectious_dose": {
|
||||
"associated_value": "Uniform distribution",
|
||||
"parameters": {"low": 10, "high": 100},
|
||||
"references": "Lednicky et al. (https://doi.org/10.1016/j.ijid.2020.09.025); Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
"viable_to_RNA_ratio": {
|
||||
'associated_value': 'Uniform distribution',
|
||||
'parameters': {'low': 0.01, 'high': 0.6},
|
||||
"associated_value": "Uniform distribution",
|
||||
"parameters": {"low": 0.01, "high": 0.6},
|
||||
"references": "",
|
||||
},
|
||||
"transmissibility_factor": {
|
||||
"value": 0.8,
|
||||
"references": "Campbell et al. (https://doi.org/10.2807/1560-7917.ES.2021.26.24.2100509.)",
|
||||
},
|
||||
"infectiousness_days": {
|
||||
"value": 14,
|
||||
"references": "",
|
||||
},
|
||||
"transmissibility_factor": 0.8,
|
||||
"infectiousness_days": 14,
|
||||
},
|
||||
"SARS_CoV_2_GAMMA": {
|
||||
"viral_load_in_sputum": ViralLoads.COVID_OVERALL.value,
|
||||
"infectious_dose": {
|
||||
"associated_value": "Uniform distribution",
|
||||
"parameters": {"low": 10, "high": 100},
|
||||
"references": "Lednicky et al. (https://doi.org/10.1016/j.ijid.2020.09.025); Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
"viable_to_RNA_ratio": {
|
||||
'associated_value': 'Uniform distribution',
|
||||
'parameters': {'low': 0.01, 'high': 0.6},
|
||||
"associated_value": "Uniform distribution",
|
||||
"parameters": {"low": 0.01, "high": 0.6},
|
||||
"references": "",
|
||||
},
|
||||
"transmissibility_factor": {
|
||||
"value": 0.72,
|
||||
"references": "Campbell et al. (https://doi.org/10.2807/1560-7917.ES.2021.26.24.2100509.)",
|
||||
},
|
||||
"infectiousness_days": {
|
||||
"value": 14,
|
||||
"references": "",
|
||||
},
|
||||
"transmissibility_factor": 0.72,
|
||||
"infectiousness_days": 14,
|
||||
},
|
||||
"SARS_CoV_2_DELTA": {
|
||||
"viral_load_in_sputum": ViralLoads.COVID_OVERALL.value,
|
||||
"infectious_dose": {
|
||||
"associated_value": "Uniform distribution",
|
||||
"parameters": {"low": 10, "high": 100},
|
||||
"references": "Lednicky et al. (https://doi.org/10.1016/j.ijid.2020.09.025); Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
"viable_to_RNA_ratio": {
|
||||
'associated_value': 'Uniform distribution',
|
||||
'parameters': {'low': 0.01, 'high': 0.6},
|
||||
"associated_value": "Uniform distribution",
|
||||
"parameters": {"low": 0.01, "high": 0.6},
|
||||
"references": "",
|
||||
},
|
||||
"transmissibility_factor": {
|
||||
"value": 0.51,
|
||||
"references": "Campbell et al. (https://doi.org/10.2807/1560-7917.ES.2021.26.24.2100509.)",
|
||||
},
|
||||
"infectiousness_days": {
|
||||
"value": 14,
|
||||
"references": "",
|
||||
},
|
||||
"transmissibility_factor": 0.51,
|
||||
"infectiousness_days": 14,
|
||||
},
|
||||
"SARS_CoV_2_OMICRON": {
|
||||
"viral_load_in_sputum": ViralLoads.COVID_OVERALL.value,
|
||||
"infectious_dose": {
|
||||
"associated_value": "Uniform distribution",
|
||||
"parameters": {"low": 10, "high": 100},
|
||||
"references": "Lednicky et al. (https://doi.org/10.1016/j.ijid.2020.09.025); Henriques et al. (https://doi.org/10.1098/rsfs.2021.0076) and references therein.",
|
||||
},
|
||||
"viable_to_RNA_ratio": {
|
||||
'associated_value': 'Uniform distribution',
|
||||
'parameters': {'low': 0.01, 'high': 0.6},
|
||||
"associated_value": "Uniform distribution",
|
||||
"parameters": {"low": 0.01, "high": 0.6},
|
||||
"references": "",
|
||||
},
|
||||
"transmissibility_factor": {
|
||||
"value": 0.2,
|
||||
"references": "",
|
||||
},
|
||||
"infectiousness_days": {
|
||||
"value": 14,
|
||||
"references": "",
|
||||
},
|
||||
"transmissibility_factor": 0.2,
|
||||
"infectiousness_days": 14,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
@ -300,8 +371,12 @@ class DataRegistry:
|
|||
"low": 0.25,
|
||||
"high": 0.80,
|
||||
},
|
||||
"references": "Pan et al. (https://doi.org/10.1080/02786826.2021.1890687); Booth et al. (https://doi.org/10.1016/j.jhin.2013.02.007); Monn et al. (https://doi.org/10.4209/aaqr.2020.08.0531).",
|
||||
},
|
||||
"factor_exhale": {
|
||||
"value": 1,
|
||||
"references": "",
|
||||
},
|
||||
"factor_exhale": 1,
|
||||
},
|
||||
"FFP2": {
|
||||
"η_inhale": {
|
||||
|
|
@ -310,8 +385,12 @@ class DataRegistry:
|
|||
"low": 0.83,
|
||||
"high": 0.91,
|
||||
},
|
||||
"references": "Pan et al. (https://doi.org/10.1080/02786826.2021.1890687); Booth et al. (https://doi.org/10.1016/j.jhin.2013.02.007); Monn et al. (https://doi.org/10.4209/aaqr.2020.08.0531).",
|
||||
},
|
||||
"factor_exhale": {
|
||||
"value": 1,
|
||||
"references": "",
|
||||
},
|
||||
"factor_exhale": 1,
|
||||
},
|
||||
"Cloth": {
|
||||
"η_inhale": {
|
||||
|
|
@ -320,6 +399,7 @@ class DataRegistry:
|
|||
"low": 0.05,
|
||||
"high": 0.40,
|
||||
},
|
||||
"references": "Pan et al. (https://doi.org/10.1080/02786826.2021.1890687); Booth et al. (https://doi.org/10.1016/j.jhin.2013.02.007); Monn et al. (https://doi.org/10.4209/aaqr.2020.08.0531).",
|
||||
},
|
||||
"η_exhale": {
|
||||
"associated_value": "Uniform distribution",
|
||||
|
|
@ -327,17 +407,22 @@ class DataRegistry:
|
|||
"low": 0.20,
|
||||
"high": 0.50,
|
||||
},
|
||||
"references": "Pan et al. (https://doi.org/10.1080/02786826.2021.1890687); Booth et al. (https://doi.org/10.1016/j.jhin.2013.02.007); Monn et al. (https://doi.org/10.4209/aaqr.2020.08.0531).",
|
||||
},
|
||||
"factor_exhale": {
|
||||
"value": 1,
|
||||
"references": "",
|
||||
},
|
||||
"factor_exhale": 1,
|
||||
},
|
||||
}
|
||||
|
||||
####################################
|
||||
|
||||
room = {
|
||||
"inside_temp": 293,
|
||||
"inside_temp": 293.,
|
||||
"humidity_with_heating": 0.3,
|
||||
"humidity_without_heating": 0.5,
|
||||
"references": "",
|
||||
}
|
||||
|
||||
ventilation = {
|
||||
|
|
@ -347,15 +432,18 @@ class DataRegistry:
|
|||
},
|
||||
},
|
||||
"infiltration_ventilation": 0.25,
|
||||
"references": "Henriques et al. (https://doi.org/10.1101/2021.10.14.21264988).",
|
||||
}
|
||||
|
||||
concentration_model = {
|
||||
"virus_concentration_model": {
|
||||
"min_background_concentration": 0.0,
|
||||
"references": "",
|
||||
},
|
||||
"CO2_concentration_model": {
|
||||
"CO2_atmosphere_concentration": 440.44,
|
||||
"CO2_fraction_exhaled": 0.042,
|
||||
"references": "",
|
||||
},
|
||||
}
|
||||
|
||||
|
|
@ -369,15 +457,18 @@ class DataRegistry:
|
|||
"𝛽r2": 0.2,
|
||||
"𝛽x1": 2.4,
|
||||
},
|
||||
"references": "Jia et al. (https://doi.org/10.1016/j.buildenv.2022.109166).",
|
||||
},
|
||||
"conversational_distance": {
|
||||
"minimum_distance": 0.5,
|
||||
"maximum_distance": 2.0,
|
||||
"references": "Derived from Fig. 8 a) 'stand-stand' in Zhang et al. (https://www.mdpi.com/1660-4601/17/4/1445).",
|
||||
},
|
||||
}
|
||||
|
||||
monte_carlo = {
|
||||
"sample_size": 250000,
|
||||
"references": "",
|
||||
}
|
||||
|
||||
population_scenario_activity = {
|
||||
|
|
|
|||
Loading…
Reference in a new issue