diff --git a/cara/models.py b/cara/models.py index 291dcfc1..96120de9 100644 --- a/cara/models.py +++ b/cara/models.py @@ -419,8 +419,8 @@ class Virus: #: RNA copies / mL viral_load_in_sputum: _VectorisedFloat - #: Ratio between infectious aerosols and dose to cause infection. - coefficient_of_infectivity: _VectorisedFloat + #: RNA-copies per quantum + quantum_infectious_dose: _VectorisedFloat #: Pre-populated examples of Viruses. types: typing.ClassVar[typing.Dict[str, "Virus"]] @@ -436,20 +436,20 @@ Virus.types = { halflife=1.1, viral_load_in_sputum=1e9, # No data on coefficient for SARS-CoV-2 yet. - # It is somewhere between 0.001 and 0.01 to have a 50% chance - # to cause infection. i.e. 1000 or 100 SARS-CoV viruses to cause infection. - coefficient_of_infectivity=0.02, + # It is somewhere between 1000 or 100 SARS-CoV viruses to have + # a 50% chance to cause infection. + quantum_infectious_dose=50., ), 'SARS_CoV_2_B117': Virus( # also called VOC-202012/01 halflife=1.1, viral_load_in_sputum=1e9, - coefficient_of_infectivity=1/30., + quantum_infectious_dose=30., ), 'SARS_CoV_2_P1': Virus( halflife=1.1, viral_load_in_sputum=1e9, - coefficient_of_infectivity=0.045, + quantum_infectious_dose=1/0.045, ), } @@ -584,10 +584,10 @@ class InfectedPopulation(Population): aerosols = self.expiration.aerosols(self.mask) ER = (self.virus.viral_load_in_sputum * - self.virus.coefficient_of_infectivity * self.activity.exhalation_rate * 10 ** 6 * - aerosols) + aerosols / + self.virus.quantum_infectious_dose) # For superspreading event, where ejection_factor is infinite we fix the ER # based on Miller et al. (2020). diff --git a/cara/tests/models/test_concentration_model.py b/cara/tests/models/test_concentration_model.py index 52fb0546..03a042d6 100644 --- a/cara/tests/models/test_concentration_model.py +++ b/cara/tests/models/test_concentration_model.py @@ -12,7 +12,7 @@ from cara import models {'air_change': np.array([100, 120])}, {'virus_halflife': np.array([1.1, 1.5])}, {'viral_load_in_sputum': np.array([5e8, 1e9])}, - {'coefficient_of_infectivity': np.array([0.02, 0.05])}, + {'quantum_infectious_dose': np.array([50, 20])}, {'η_exhale': np.array([0.92, 0.95])}, {'η_leaks': np.array([0.15, 0.20])}, ] @@ -23,7 +23,7 @@ def test_concentration_model_vectorisation(override_params): 'air_change': 100, 'virus_halflife': 1.1, 'viral_load_in_sputum': 1e9, - 'coefficient_of_infectivity': 0.02, + 'quantum_infectious_dose': 50, 'η_exhale': 0.95, 'η_leaks': 0.15, } @@ -48,7 +48,7 @@ def test_concentration_model_vectorisation(override_params): virus=models.Virus( halflife=defaults['virus_halflife'], viral_load_in_sputum=defaults['viral_load_in_sputum'], - coefficient_of_infectivity=defaults['coefficient_of_infectivity'], + quantum_infectious_dose=defaults['quantum_infectious_dose'], ), expiration=models.Expiration( ejection_factor=(0.084, 0.009, 0.003, 0.002), diff --git a/cara/tests/test_infected_population.py b/cara/tests/test_infected_population.py index 39fbc039..c237e251 100644 --- a/cara/tests/test_infected_population.py +++ b/cara/tests/test_infected_population.py @@ -7,7 +7,7 @@ import cara.models @pytest.mark.parametrize( "override_params", [ {'viral_load_in_sputum': np.array([5e8, 1e9])}, - {'coefficient_of_infectivity': np.array([0.02, 0.05])}, + {'quantum_infectious_dose': np.array([50, 20])}, {'η_exhale': np.array([0.92, 0.95])}, {'η_leaks': np.array([0.15, 0.20])}, {'exhalation_rate': np.array([0.75, 0.81])}, @@ -17,7 +17,7 @@ def test_infected_population_vectorisation(override_params): defaults = { 'virus_halflife': 1.1, 'viral_load_in_sputum': 1e9, - 'coefficient_of_infectivity': 0.02, + 'quantum_infectious_dose': 50, 'η_exhale': 0.95, 'η_leaks': 0.15, 'exhalation_rate': 0.75, @@ -40,7 +40,7 @@ def test_infected_population_vectorisation(override_params): virus=cara.models.Virus( halflife=defaults['virus_halflife'], viral_load_in_sputum=defaults['viral_load_in_sputum'], - coefficient_of_infectivity=defaults['coefficient_of_infectivity'], + quantum_infectious_dose=defaults['quantum_infectious_dose'], ), expiration=cara.models.Expiration( ejection_factor=(0.084, 0.009, 0.003, 0.002),