vivarium-public-health 3.0.9__py3-none-any.whl → 3.0.11__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vivarium_public_health/__init__.py +39 -0
- vivarium_public_health/_version.py +1 -1
- vivarium_public_health/disease/__init__.py +1 -0
- vivarium_public_health/population/__init__.py +1 -1
- vivarium_public_health/population/base_population.py +47 -3
- vivarium_public_health/population/data_transformations.py +3 -1
- vivarium_public_health/results/__init__.py +1 -0
- {vivarium_public_health-3.0.9.dist-info → vivarium_public_health-3.0.11.dist-info}/METADATA +1 -1
- {vivarium_public_health-3.0.9.dist-info → vivarium_public_health-3.0.11.dist-info}/RECORD +12 -12
- {vivarium_public_health-3.0.9.dist-info → vivarium_public_health-3.0.11.dist-info}/WHEEL +1 -1
- {vivarium_public_health-3.0.9.dist-info → vivarium_public_health-3.0.11.dist-info}/LICENSE.txt +0 -0
- {vivarium_public_health-3.0.9.dist-info → vivarium_public_health-3.0.11.dist-info}/top_level.txt +0 -0
@@ -8,6 +8,45 @@ from vivarium_public_health.__about__ import (
|
|
8
8
|
__uri__,
|
9
9
|
)
|
10
10
|
from vivarium_public_health._version import __version__
|
11
|
+
from vivarium_public_health.disease import (
|
12
|
+
SI,
|
13
|
+
SIR,
|
14
|
+
SIS,
|
15
|
+
DiseaseModel,
|
16
|
+
DiseaseState,
|
17
|
+
NeonatalSWC_with_incidence,
|
18
|
+
NeonatalSWC_without_incidence,
|
19
|
+
RecoveredState,
|
20
|
+
RiskAttributableDisease,
|
21
|
+
SIR_fixed_duration,
|
22
|
+
SIS_fixed_duration,
|
23
|
+
SusceptibleState,
|
24
|
+
TransientDiseaseState,
|
25
|
+
)
|
26
|
+
from vivarium_public_health.plugins import CausesConfigurationParser
|
27
|
+
from vivarium_public_health.population import (
|
28
|
+
BasePopulation,
|
29
|
+
FertilityAgeSpecificRates,
|
30
|
+
FertilityCrudeBirthRate,
|
31
|
+
FertilityDeterministic,
|
32
|
+
Mortality,
|
33
|
+
ScaledPopulation,
|
34
|
+
)
|
35
|
+
from vivarium_public_health.results import (
|
36
|
+
CategoricalRiskObserver,
|
37
|
+
DisabilityObserver,
|
38
|
+
DiseaseObserver,
|
39
|
+
MortalityObserver,
|
40
|
+
ResultsStratifier,
|
41
|
+
)
|
42
|
+
from vivarium_public_health.risks import (
|
43
|
+
LBWSGRisk,
|
44
|
+
LBWSGRiskEffect,
|
45
|
+
NonLogLinearRiskEffect,
|
46
|
+
Risk,
|
47
|
+
RiskEffect,
|
48
|
+
)
|
49
|
+
from vivarium_public_health.treatment import AbsoluteShift, LinearScaleUp, TherapeuticInertia
|
11
50
|
|
12
51
|
__all__ = [
|
13
52
|
__author__,
|
@@ -1 +1 @@
|
|
1
|
-
__version__ = "3.0.
|
1
|
+
__version__ = "3.0.11"
|
@@ -3,5 +3,5 @@ from .add_new_birth_cohorts import (
|
|
3
3
|
FertilityCrudeBirthRate,
|
4
4
|
FertilityDeterministic,
|
5
5
|
)
|
6
|
-
from .base_population import BasePopulation, generate_population
|
6
|
+
from .base_population import BasePopulation, ScaledPopulation, generate_population
|
7
7
|
from .mortality import Mortality
|
@@ -8,6 +8,8 @@ characteristics to simulants.
|
|
8
8
|
|
9
9
|
"""
|
10
10
|
|
11
|
+
from __future__ import annotations
|
12
|
+
|
11
13
|
from typing import Callable, Dict, Iterable, List
|
12
14
|
|
13
15
|
import numpy as np
|
@@ -76,12 +78,11 @@ class BasePopulation(Component):
|
|
76
78
|
# Validate configuration for deprecated keys
|
77
79
|
self._validate_config_for_deprecated_keys()
|
78
80
|
|
79
|
-
source_population_structure =
|
81
|
+
source_population_structure = self._load_population_structure(builder)
|
80
82
|
self.demographic_proportions = assign_demographic_proportions(
|
81
83
|
source_population_structure,
|
82
84
|
include_sex=self.config.include_sex,
|
83
85
|
)
|
84
|
-
|
85
86
|
self.randomness = self.get_randomness_streams(builder)
|
86
87
|
self.register_simulants = builder.randomness.register_simulants
|
87
88
|
|
@@ -138,7 +139,6 @@ class BasePopulation(Component):
|
|
138
139
|
demographic_proportions = self.get_demographic_proportions_for_creation_time(
|
139
140
|
self.demographic_proportions, pop_data.creation_time.year
|
140
141
|
)
|
141
|
-
|
142
142
|
self.population_view.update(
|
143
143
|
generate_population(
|
144
144
|
simulant_ids=pop_data.index,
|
@@ -202,6 +202,50 @@ class BasePopulation(Component):
|
|
202
202
|
f"Public Health. Use the new key '{mapper[key]}' instead."
|
203
203
|
)
|
204
204
|
|
205
|
+
def _load_population_structure(self, builder: Builder) -> pd.DataFrame:
|
206
|
+
return load_population_structure(builder)
|
207
|
+
|
208
|
+
|
209
|
+
class ScaledPopulation(BasePopulation):
|
210
|
+
"""This component is to be used in place of BasePopulation when all simulants are
|
211
|
+
a subset of the total population and need to be rescaled. The base population
|
212
|
+
structure is multiplied by a provided scaling factor. This scaling factor
|
213
|
+
can be a dataframe passed in or a string that corresponds to an artifact key.
|
214
|
+
If providing an artifact key, users can specify that in the configuration file.
|
215
|
+
For example:
|
216
|
+
|
217
|
+
.. code-block:: yaml
|
218
|
+
|
219
|
+
components:
|
220
|
+
vivarium_public_health:
|
221
|
+
population:
|
222
|
+
- ScaledPopulation("some.artifact.key")
|
223
|
+
|
224
|
+
|
225
|
+
"""
|
226
|
+
|
227
|
+
def __init__(self, scaling_factor: str | pd.DataFrame):
|
228
|
+
super().__init__()
|
229
|
+
self.scaling_factor = scaling_factor
|
230
|
+
"""Set a multiplicative scaling factor for the population structure."""
|
231
|
+
|
232
|
+
def _load_population_structure(self, builder: Builder) -> pd.DataFrame:
|
233
|
+
scaling_factor = self.get_data(builder, self.scaling_factor)
|
234
|
+
population_structure = load_population_structure(builder)
|
235
|
+
if not isinstance(scaling_factor, pd.DataFrame):
|
236
|
+
raise ValueError(
|
237
|
+
f"Scaling factor must be a pandas DataFrame. Provided value: {scaling_factor}"
|
238
|
+
)
|
239
|
+
scaling_factor = scaling_factor.set_index(
|
240
|
+
[col for col in scaling_factor.columns if col != "value"]
|
241
|
+
)
|
242
|
+
population_structure = population_structure.set_index(
|
243
|
+
[col for col in population_structure.columns if col != "value"]
|
244
|
+
)
|
245
|
+
scaled_population_structure = (population_structure * scaling_factor).reset_index()
|
246
|
+
|
247
|
+
return scaled_population_structure
|
248
|
+
|
205
249
|
|
206
250
|
class AgeOutSimulants(Component):
|
207
251
|
"""Component for handling aged-out simulants"""
|
@@ -13,6 +13,7 @@ from typing import Tuple, Union
|
|
13
13
|
|
14
14
|
import numpy as np
|
15
15
|
import pandas as pd
|
16
|
+
from vivarium.framework.engine import Builder
|
16
17
|
from vivarium.framework.randomness import RandomnessStream
|
17
18
|
|
18
19
|
_SORT_ORDER = ["location", "year_start", "sex", "age_start"]
|
@@ -493,11 +494,12 @@ def get_cause_deleted_mortality_rate(all_cause_mortality_rate, list_of_csmrs):
|
|
493
494
|
)
|
494
495
|
|
495
496
|
|
496
|
-
def load_population_structure(builder):
|
497
|
+
def load_population_structure(builder: Builder) -> pd.DataFrame:
|
497
498
|
data = builder.data.load("population.structure")
|
498
499
|
# create an age column which is the midpoint of the age group
|
499
500
|
data["age"] = data.apply(lambda row: (row["age_start"] + row["age_end"]) / 2, axis=1)
|
500
501
|
data["location"] = builder.data.load("population.location")
|
502
|
+
|
501
503
|
return data
|
502
504
|
|
503
505
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: vivarium_public_health
|
3
|
-
Version: 3.0.
|
3
|
+
Version: 3.0.11
|
4
4
|
Summary: Components for modelling diseases, risks, and interventions with ``vivarium``
|
5
5
|
Home-page: https://github.com/ihmeuw/vivarium_public_health
|
6
6
|
Author: The vivarium developers
|
@@ -1,8 +1,8 @@
|
|
1
1
|
vivarium_public_health/__about__.py,sha256=RgWycPypKZS80TpSX7o41cREnG8PfguNHDHLuLyl820,487
|
2
|
-
vivarium_public_health/__init__.py,sha256=
|
3
|
-
vivarium_public_health/_version.py,sha256=
|
2
|
+
vivarium_public_health/__init__.py,sha256=GDeeP-7OlCBwPuv_xQoB1wNmvCaFsqfTB7qnnYApm0w,1343
|
3
|
+
vivarium_public_health/_version.py,sha256=W1N6WTKcxezCC9VWuVcJYjP2WH4QF_enZGppktJNiZw,23
|
4
4
|
vivarium_public_health/utilities.py,sha256=5cl9jjVkOQ1UeXT4DjDMAhaBNNjAsDo-SVJwpv6FDw0,3071
|
5
|
-
vivarium_public_health/disease/__init__.py,sha256=
|
5
|
+
vivarium_public_health/disease/__init__.py,sha256=VUJHDLlE6ngo2qHNQUtZ8OWH5H_T7_ao-xsYKDkRmHw,443
|
6
6
|
vivarium_public_health/disease/model.py,sha256=0WIYDEx-hwlUJp6Zl8m8bUMoWxuVkOWsJvh_YlZiOPs,8234
|
7
7
|
vivarium_public_health/disease/models.py,sha256=01UK7yB2zGPFzmlIpvhd-XnGe6vSCMDza3QTidgY7Nc,3479
|
8
8
|
vivarium_public_health/disease/special_disease.py,sha256=3vS1WsO__IwOK0Oe_CUmh3aaKrXIf2CANtmiqlS3pjc,14614
|
@@ -17,12 +17,12 @@ vivarium_public_health/mslt/observer.py,sha256=O4rysQzAGE5oDkdXb0E-qjD9TPFphQHTn
|
|
17
17
|
vivarium_public_health/mslt/population.py,sha256=v_p5VkjndAVJMuXaJQc3lAdzUWHlWCEQWH4A-c4phPA,7255
|
18
18
|
vivarium_public_health/plugins/__init__.py,sha256=oBW_zfgG_LbwfgTDjUe0btfy9FaDvAbtXho1zQFnz0Y,76
|
19
19
|
vivarium_public_health/plugins/parser.py,sha256=v78mj8awpdrB-oqK8udPI_7MZBChoKJOQN_e17fNEj8,31841
|
20
|
-
vivarium_public_health/population/__init__.py,sha256=
|
20
|
+
vivarium_public_health/population/__init__.py,sha256=x_9rB93q64Krw-kbBDI1-_U_JsPO1_QrL03AwiFlwXI,243
|
21
21
|
vivarium_public_health/population/add_new_birth_cohorts.py,sha256=k65Li0LYWl-JFHBUvLjJxkRv12EJw_FVxrOYgbd44q8,9078
|
22
|
-
vivarium_public_health/population/base_population.py,sha256=
|
23
|
-
vivarium_public_health/population/data_transformations.py,sha256=
|
22
|
+
vivarium_public_health/population/base_population.py,sha256=jJMVWv_EO0ckUZHhh01dRbsRgL491Eg3thRxPwNiAeg,18866
|
23
|
+
vivarium_public_health/population/data_transformations.py,sha256=YmqyrlrIBtHGp1nFyhesqlNryvB7Vr33eVu4fU4HWsA,22260
|
24
24
|
vivarium_public_health/population/mortality.py,sha256=w7b_TUssHjRcnULdXu7MXKfZBjCrlYWbB94oO3JWogI,10264
|
25
|
-
vivarium_public_health/results/__init__.py,sha256=
|
25
|
+
vivarium_public_health/results/__init__.py,sha256=rKUZGlRXJgEyFY4a_WJeg3XnC0l34S5guYZ0N9JJS4E,319
|
26
26
|
vivarium_public_health/results/columns.py,sha256=V-L3JgTcsk51Zx9PcUwSgaE1iZjuGyfZ8aShPjynadU,495
|
27
27
|
vivarium_public_health/results/disability.py,sha256=JQm3Q7CoGCT2AgxaoH6MKkvnq4xF83wfFmEvEOvTmvA,9876
|
28
28
|
vivarium_public_health/results/disease.py,sha256=OwxhPrfDsCnCZSaw8Yiq2AnibWikoqI-gM7xDdhFLcM,12529
|
@@ -42,8 +42,8 @@ vivarium_public_health/treatment/__init__.py,sha256=wONElu9aJbBYwpYIovYPYaN_GYfV
|
|
42
42
|
vivarium_public_health/treatment/magic_wand.py,sha256=i9N57-MEuQv5B6dQ5iVMTAdOPghYcgiRRz-dTzigf1s,1980
|
43
43
|
vivarium_public_health/treatment/scale_up.py,sha256=9Cl3_MaCNPtUPPKXf3hWYepIwMCFlFY24jt2jeyFQO4,7006
|
44
44
|
vivarium_public_health/treatment/therapeutic_inertia.py,sha256=8Z97s7GfcpfLu1U1ESJSqeEk4L__a3M0GbBV21MFg2s,2346
|
45
|
-
vivarium_public_health-3.0.
|
46
|
-
vivarium_public_health-3.0.
|
47
|
-
vivarium_public_health-3.0.
|
48
|
-
vivarium_public_health-3.0.
|
49
|
-
vivarium_public_health-3.0.
|
45
|
+
vivarium_public_health-3.0.11.dist-info/LICENSE.txt,sha256=mN4bNLUQNcN9njYRc_3jCZkfPySVpmM6MRps104FxA4,1548
|
46
|
+
vivarium_public_health-3.0.11.dist-info/METADATA,sha256=u0zd8NuWIzdLxDYVFI-XfgksSIjwmiQtzJC7ermq4w0,4062
|
47
|
+
vivarium_public_health-3.0.11.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
48
|
+
vivarium_public_health-3.0.11.dist-info/top_level.txt,sha256=VVInlpzCFD0UNNhjOq_j-a29odzjwUwYFTGfvqbi4dY,23
|
49
|
+
vivarium_public_health-3.0.11.dist-info/RECORD,,
|
{vivarium_public_health-3.0.9.dist-info → vivarium_public_health-3.0.11.dist-info}/LICENSE.txt
RENAMED
File without changes
|
{vivarium_public_health-3.0.9.dist-info → vivarium_public_health-3.0.11.dist-info}/top_level.txt
RENAMED
File without changes
|