add results for shouting
This commit is contained in:
parent
9fe5ecc04f
commit
0ce14e56f3
3 changed files with 69 additions and 1 deletions
|
|
@ -183,6 +183,37 @@ def talking_exposure_vl(vl):
|
|||
)
|
||||
return exposure_mc
|
||||
|
||||
######### Shouting model for specific viral load ###########
|
||||
def shouting_exposure_vl(vl):
|
||||
exposure_mc = mc.ExposureModel(
|
||||
concentration_model=mc.ConcentrationModel(
|
||||
room=models.Room(volume=100, humidity=0.5),
|
||||
ventilation=models.AirChange(
|
||||
active=models.SpecificInterval(((0, 24),)),
|
||||
air_exch=0.25,
|
||||
),
|
||||
infected=mc.InfectedPopulation(
|
||||
number=1,
|
||||
virus=mc.Virus(
|
||||
viral_load_in_sputum=10**vl,
|
||||
infectious_dose=50.,
|
||||
viable_to_RNA=infectious_virus_distribution,
|
||||
),
|
||||
presence=mc.SpecificInterval(((0, 2),)),
|
||||
mask=models.Mask.types['No mask'],
|
||||
activity=activity_distributions['Light activity'],
|
||||
expiration=models.Expiration.types['Shouting'],
|
||||
),
|
||||
),
|
||||
exposed=mc.Population(
|
||||
number=14,
|
||||
presence=mc.SpecificInterval(((0, 2),)),
|
||||
activity=models.Activity.types['Light activity'],
|
||||
mask=models.Mask.types["No mask"],
|
||||
),
|
||||
)
|
||||
return exposure_mc
|
||||
|
||||
######### Used for CDF Models ###########
|
||||
######### Breathing Models #########
|
||||
def breathing_seated_exposure():
|
||||
|
|
|
|||
|
|
@ -18,7 +18,11 @@ print('\n<<<<<<<<<<< Vlout for Talking, seated >>>>>>>>>>>')
|
|||
|
||||
# Exhaled virions while breathing, seated #
|
||||
print('\n<<<<<<<<<<< Vlout for Breathing, seated >>>>>>>>>>>')
|
||||
#exposure_model_from_vl_breathing()
|
||||
exposure_model_from_vl_breathing()
|
||||
|
||||
# Exhaled virions while breathing, light activity #
|
||||
print('\n<<<<<<<<<<< Vlout for Shouting, light activity >>>>>>>>>>>')
|
||||
exposure_model_from_vl_shouting()
|
||||
|
||||
# Exhaled virions while talking according to BLO model, seated #
|
||||
print('\n<<<<<<<<<<< Vlout for Talking, seated with chosen Cn,L >>>>>>>>>>>')
|
||||
|
|
|
|||
|
|
@ -274,6 +274,39 @@ def exposure_model_from_vl_talking_cn():
|
|||
plt.xlabel('NP viral load, $\mathrm{vl_{in}}$\n(RNA copies)', fontsize=14)
|
||||
plt.show()
|
||||
|
||||
####### Shouting ########
|
||||
|
||||
|
||||
def exposure_model_from_vl_shouting():
|
||||
fig = plt.figure()
|
||||
ax = fig.add_subplot(1, 1, 1)
|
||||
|
||||
er_means_1h = []
|
||||
|
||||
for vl in tqdm(viral_loads):
|
||||
exposure_mc = shouting_exposure_vl(vl)
|
||||
exposure_model = exposure_mc.build_model(size=SAMPLE_SIZE)
|
||||
emission_rate_1h = exposure_model.concentration_model.infected.emission_rate_when_present(cn_B=0.06, cn_L=0.2)
|
||||
er_means_1h.append(np.mean(emission_rate_1h))
|
||||
|
||||
ax.plot(viral_loads, er_means_1h)
|
||||
ax.set_yscale('log')
|
||||
|
||||
ratio_1h = np.mean(10**viral_loads / er_means_1h)
|
||||
print('Mean swab-to-aersol vl ratio emission rate per hour:')
|
||||
print(format(ratio_1h, "5.1e"))
|
||||
|
||||
############ Plot ############
|
||||
plt.title('',
|
||||
fontsize=16, fontweight="bold")
|
||||
plt.ylabel(
|
||||
'Aerosol viral load, $\mathrm{vl_{out}}$\n(RNA copies)', fontsize=14)
|
||||
plt.xticks(ticks=[i for i in range(2, 13)], labels=[
|
||||
'$10^{' + str(i) + '}$' for i in range(2, 13)])
|
||||
plt.xlabel('NP viral load, $\mathrm{vl_{in}}$\n(RNA copies)', fontsize=14)
|
||||
plt.show()
|
||||
|
||||
|
||||
############ Plots with viral loads and emission rates ############
|
||||
############ Statistical Data ############
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue