@@ -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(
13351337def 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-
13961389def 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
0 commit comments