Skip to content

Commit 1c731b2

Browse files
committed
Update artifact
1 parent d82a2b5 commit 1c731b2

File tree

3 files changed

+26
-21
lines changed

3 files changed

+26
-21
lines changed

src/vivarium_gates_mncnh/constants/data_keys.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,12 @@ class __IFASupplementation(NamedTuple):
489489
EXCESS_SHIFT: TargetString = TargetString(
490490
"risk_factor.iron_folic_acid_supplementation.excess_shift"
491491
)
492+
EXCESS_GA_SHIFT_ANC: TargetString = TargetString(
493+
"risk_factor.iron_folic_acid_supplementation.excess_gestational_age_shift_anc"
494+
)
495+
EXCESS_GA_SHIFT_NON_ANC: TargetString = TargetString(
496+
"risk_factor.iron_folic_acid_supplementation.excess_gestational_age_shift_non_anc"
497+
)
492498
RISK_SPECIFIC_SHIFT: TargetString = TargetString(
493499
"risk_factor.iron_folic_acid_supplementation.risk_specific_shift"
494500
)

src/vivarium_gates_mncnh/data/loader.py

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -137,11 +137,13 @@ def get_data(
137137
data_keys.NO_MISOPROSTOL_RISK.PAF: load_no_misoprostol_paf,
138138
data_keys.IFA_SUPPLEMENTATION.COVERAGE: load_ifa_coverage,
139139
data_keys.IFA_SUPPLEMENTATION.EFFECT_SIZE: load_oral_iron_effect_size,
140-
data_keys.IFA_SUPPLEMENTATION.EXCESS_SHIFT: load_ifa_excess_shift,
140+
data_keys.IFA_SUPPLEMENTATION.EXCESS_SHIFT: load_excess_shift,
141+
data_keys.IFA_SUPPLEMENTATION.EXCESS_GA_SHIFT_ANC: load_excess_gestational_age_shift,
142+
data_keys.IFA_SUPPLEMENTATION.EXCESS_GA_SHIFT_NON_ANC: load_excess_gestational_age_shift,
141143
data_keys.IFA_SUPPLEMENTATION.RISK_SPECIFIC_SHIFT: load_risk_specific_shift,
142144
data_keys.MMN_SUPPLEMENTATION.EFFECT_SIZE: load_oral_iron_effect_size,
143145
data_keys.MMN_SUPPLEMENTATION.STILLBIRTH_RR: load_oral_iron_effect_size,
144-
data_keys.MMN_SUPPLEMENTATION.EXCESS_SHIFT: load_mms_excess_shift,
146+
data_keys.MMN_SUPPLEMENTATION.EXCESS_SHIFT: load_excess_shift,
145147
data_keys.MMN_SUPPLEMENTATION.EXCESS_GA_SHIFT_SUBPOP_1: load_excess_gestational_age_shift,
146148
data_keys.MMN_SUPPLEMENTATION.EXCESS_GA_SHIFT_SUBPOP_2: load_excess_gestational_age_shift,
147149
data_keys.MMN_SUPPLEMENTATION.RISK_SPECIFIC_SHIFT: load_risk_specific_shift,
@@ -1335,7 +1337,7 @@ def load_no_misoprostol_paf(
13351337
def load_ifa_coverage(
13361338
key: str, location: str, years: Optional[Union[int, str, List[int]]] = None
13371339
) -> pd.DataFrame:
1338-
filepath = paths.ORAL_IRON_DATA_DIR / "anc_iron_prop_st.csv"
1340+
filepath = "/snfs1/Project/simulation_science/mnch_grant/MNCNH portfolio/anc_iron_prop_st-gpr_results_aggregates_scaled2025-05-30.csv"
13391341
return load_coverage_from_file(filepath, location)
13401342

13411343

@@ -1384,15 +1386,6 @@ def load_oral_iron_effect_size(
13841386
return pd.concat(effect_size_data)
13851387

13861388

1387-
def load_ifa_excess_shift(
1388-
key: str, location: str, years: Optional[Union[int, str, List[int]]] = None
1389-
) -> pd.DataFrame:
1390-
birth_weight_shift = load_mms_excess_shift(key, location)
1391-
gestational_age_shift = load_excess_gestational_age_shift(key, location)
1392-
all_ages_data = pd.concat([birth_weight_shift, gestational_age_shift])
1393-
return all_ages_data.query("age_end <= 5.0")
1394-
1395-
13961389
def load_risk_specific_shift(
13971390
key: str, location: str, years: Optional[Union[int, str, List[int]]] = None
13981391
) -> pd.DataFrame:
@@ -1411,9 +1404,11 @@ def load_risk_specific_shift(
14111404
0.0, columns=single_cat_shift.columns, index=single_cat_shift.index
14121405
)
14131406
else:
1414-
exposure = get_data(key_group.COVERAGE, location)
1415-
excess_shift = get_data(key_group.EXCESS_SHIFT, location)
1416-
anc_proportion = get_data(data_keys.ANC.ANC1, location)
1407+
shift_anc = get_data(key_group.EXCESS_GA_SHIFT_ANC, location)
1408+
shift_non_anc = get_data(key_group.EXCESS_GA_SHIFT_NON_ANC, location)
1409+
exposure = get_data(key_group.COVERAGE, location)[shift_anc.columns]
1410+
anc_proportion = get_data(data_keys.ANC.ANC1, location)[shift_anc.columns]
1411+
excess_shift = shift_anc * anc_proportion + shift_non_anc * (1 - anc_proportion)
14171412

14181413
risk_specific_shift = (
14191414
(exposure * excess_shift * anc_proportion)
@@ -1422,11 +1417,12 @@ def load_risk_specific_shift(
14221417
)
14231418
.sum()
14241419
)
1420+
14251421

14261422
return risk_specific_shift
14271423

14281424

1429-
def load_mms_excess_shift(
1425+
def load_excess_shift(
14301426
key: str, location: str, years: Optional[Union[int, str, List[int]]] = None
14311427
) -> pd.DataFrame:
14321428
try:
@@ -1465,7 +1461,7 @@ def reshape_shift_data(shift: pd.Series, index: pd.Index, target: str) -> pd.Dat
14651461
"""
14661462
exposed = pd.DataFrame([shift], index=index)
14671463
exposed["parameter"] = "cat2"
1468-
unexposed = pd.DataFrame([pd.Series(0.0, index=metadata.ARTIFACT_COLUMNS)], index=index)
1464+
unexposed = pd.DataFrame([pd.Series(0.0, index=shift.index)], index=index)
14691465
unexposed["parameter"] = "cat1"
14701466

14711467
excess_shift = pd.concat([exposed, unexposed])
@@ -1485,7 +1481,8 @@ def load_excess_gestational_age_shift(
14851481
Returns the sum of the shift data in the directories defined in data_dirs."""
14861482
try:
14871483
data_file = {
1488-
data_keys.IFA_SUPPLEMENTATION.EXCESS_SHIFT: "ifa_ga_shifts.csv",
1484+
data_keys.IFA_SUPPLEMENTATION.EXCESS_GA_SHIFT_ANC: "ifa_ga_shifts.csv",
1485+
data_keys.IFA_SUPPLEMENTATION.EXCESS_GA_SHIFT_NON_ANC: "ifa_ga_shifts.csv",
14891486
data_keys.MMN_SUPPLEMENTATION.EXCESS_GA_SHIFT_SUBPOP_1: "updated_mms_shifts.csv",
14901487
data_keys.MMN_SUPPLEMENTATION.EXCESS_GA_SHIFT_SUBPOP_2: "updated_mms_shifts.csv",
14911488
}[key]
@@ -1497,8 +1494,11 @@ def load_excess_gestational_age_shift(
14971494
shift_data = pd.read_csv(paths.ORAL_IRON_DATA_DIR / data_file).pipe(
14981495
lambda df: df[df.location_id == location_id]
14991496
)
1497+
if key == data_keys.IFA_SUPPLEMENTATION.EXCESS_GA_SHIFT_ANC or key == data_keys.IFA_SUPPLEMENTATION.EXCESS_GA_SHIFT_NON_ANC:
1498+
shift_data['draw'] = ["draw_" + str(x) for x in shift_data['draw']]
15001499
shift_columns = {
1501-
data_keys.IFA_SUPPLEMENTATION.EXCESS_SHIFT: ["value"],
1500+
data_keys.IFA_SUPPLEMENTATION.EXCESS_GA_SHIFT_ANC: ["shift_anc"],
1501+
data_keys.IFA_SUPPLEMENTATION.EXCESS_GA_SHIFT_NON_ANC: ["shift_no_anc"],
15021502
data_keys.MMN_SUPPLEMENTATION.EXCESS_GA_SHIFT_SUBPOP_1: ["shift1"],
15031503
data_keys.MMN_SUPPLEMENTATION.EXCESS_GA_SHIFT_SUBPOP_2: ["shift1", "shift2"],
15041504
}[key]
@@ -1507,7 +1507,6 @@ def load_excess_gestational_age_shift(
15071507
excess_shift = reshape_shift_data(
15081508
shifts, index, data_values.PIPELINES.GESTATIONAL_AGE_EXPOSURE
15091509
)
1510-
excess_shift = excess_shift[metadata.ARTIFACT_COLUMNS]
15111510
return excess_shift.query("age_end <= 5.0").droplevel("location")
15121511

15131512

src/vivarium_gates_mncnh/model_specifications/model_spec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ components:
7878
configuration:
7979
input_data:
8080
input_draw_number: 60
81-
artifact_path: "/mnt/team/simulation_science/pub/models/vivarium_gates_mncnh/artifacts/model28.1/ethiopia.hdf"
81+
artifact_path: "/mnt/team/simulation_science/pub/models/vivarium_gates_mncnh/artifacts/ifa_mms_refactor/ethiopia.hdf"
8282
interpolation:
8383
order: 0
8484
extrapolate: True

0 commit comments

Comments
 (0)