From 72db7a177e6bced2b5060673719ed0429e0ddc44 Mon Sep 17 00:00:00 2001 From: LoveleenB-M <63258736+LoveleenB-M@users.noreply.github.com> Date: Mon, 9 Mar 2026 14:39:50 +0000 Subject: [PATCH 1/5] Update hiv_synthesis.sas --- hiv_synthesis.sas | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/hiv_synthesis.sas b/hiv_synthesis.sas index ff33c658..3aa68075 100644 --- a/hiv_synthesis.sas +++ b/hiv_synthesis.sas @@ -3002,7 +3002,15 @@ if testing_disrup_covid =1 and covid_disrup_affected = 1 then do; rate_1sttest = ***Zim specific; * JAS Feb24; if country = 'Zimbabwe' then do; - if 2020.5 le caldate{t} lt 2021.5 then do; rate_1sttest=rate_1sttest*0.5;rate_reptest=rate_reptest*0.5;end; + if 2020.5 le caldate{t} lt 2021.5 then do; + rate_1sttest=rate_1sttest*0.3;rate_reptest=rate_reptest*0.3; + rate_1sttest_2021=rate_1sttest;rate_reptest_2021=rate_reptest; + end; + + if caldate{t} ge 2021.5 then do; + rate_1sttest = rate_1sttest_2021 - ((caldate{t}-2021.5 )*an_lin_incr_test*fold_rate_decr_test_future); + rate_reptest = rate_reptest_2021 - ((caldate{t}-2021.5 )*an_lin_incr_test*fold_rate_decr_test_future); + end; end; * ts1m; From fe04aac2ac031b9df3200850dcc14f14e1400573 Mon Sep 17 00:00:00 2001 From: LoveleenB-M <63258736+LoveleenB-M@users.noreply.github.com> Date: Mon, 9 Mar 2026 16:07:08 +0000 Subject: [PATCH 2/5] Update hiv_synthesis.sas --- hiv_synthesis.sas | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/hiv_synthesis.sas b/hiv_synthesis.sas index 3aa68075..73f20df9 100644 --- a/hiv_synthesis.sas +++ b/hiv_synthesis.sas @@ -2997,22 +2997,24 @@ if t ge 2 and date_start_testing <= caldate{t} then do; * note that date_start_t if gender=2 then do; rate_1sttest = rate_1sttest * rr_testing_female ; rate_reptest = rate_reptest * rr_testing_female ; end; end; - if testing_disrup_covid =1 and covid_disrup_affected = 1 then do; rate_1sttest = 0 ; rate_reptest = 0; end; -***Zim specific; * JAS Feb24; +***Zim specific; if country = 'Zimbabwe' then do; - if 2020.5 le caldate{t} lt 2021.5 then do; - rate_1sttest=rate_1sttest*0.3;rate_reptest=rate_reptest*0.3; - rate_1sttest_2021=rate_1sttest;rate_reptest_2021=rate_reptest; + + if caldate{t} = 2020.5 then do; + rate_1sttest_2020=rate_1sttest*0.1; + rate_reptest_2020=rate_reptest*0.1; end; - - if caldate{t} ge 2021.5 then do; - rate_1sttest = rate_1sttest_2021 - ((caldate{t}-2021.5 )*an_lin_incr_test*fold_rate_decr_test_future); - rate_reptest = rate_reptest_2021 - ((caldate{t}-2021.5 )*an_lin_incr_test*fold_rate_decr_test_future); + + if caldate{t} > 2020.5 then do; + rate_1sttest = max ((rate_1sttest_2020 - ((caldate{t}-2020.5 )*an_lin_incr_test*fold_rate_decr_test_future)), 0); + rate_reptest = max ((rate_reptest_2020 - ((caldate{t}-2020.5 )*an_lin_incr_test*fold_rate_decr_test_future)), 0); end; + end; + * ts1m; * rate_1sttest = 1 - (1 - rate_1sttest )**(1/3) ; * rate_reptest = 1 - (1 - rate_reptest )**(1/3) ; From 0e5892183daa874215cd9205e19bd5a3ccb1248d Mon Sep 17 00:00:00 2001 From: LoveleenB-M <63258736+LoveleenB-M@users.noreply.github.com> Date: Wed, 11 Mar 2026 11:43:34 +0000 Subject: [PATCH 3/5] update --- Zim_parameters.sas | 4 ++-- hiv_synthesis.sas | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/Zim_parameters.sas b/Zim_parameters.sas index 9745cc96..e89f8859 100644 --- a/Zim_parameters.sas +++ b/Zim_parameters.sas @@ -95,9 +95,9 @@ rate_ch_art_init_str_9 = 0.1 ; ***Too many people on PrEP; -* rate_test_startprep_any; %sample_uniform(rate_test_startprep_any, 0.10 0.15 0.30); +* rate_test_startprep_any; *%sample_uniform(rate_test_startprep_any, 0.10 0.15 0.30); -* prob_prep_oral_b; %sample_uniform(prob_prep_oral_b, 0.05 0.1); +* prob_prep_oral_b; *%sample_uniform(prob_prep_oral_b, 0.05 0.1); * pref_prep_oral_beta_s1; %sample_uniform(pref_prep_oral_beta_s1, 0.6 0.7 0.8 0.9 1.0 1.1) ; diff --git a/hiv_synthesis.sas b/hiv_synthesis.sas index 73f20df9..4066d40f 100644 --- a/hiv_synthesis.sas +++ b/hiv_synthesis.sas @@ -763,7 +763,7 @@ end; * prep_dependent_prev_vg1000; %sample(prep_dependent_prev_vg1000, 0 1, 0.80 0.20); * does prep use depend on the prevalence of vl > 1000 in population; * cioa_j ; * prep_vlg1000_threshold; %sample(prep_vlg1000_threshold, 0.005 0.01, 0.5 0.5); * if prep use depends on prevalence of vl > 1000 in population, what is the threshold ?; -* rate_test_startprep_any; %sample_uniform(rate_test_startprep_any, 0.25 0.5 0.75); +* rate_test_startprep_any; %sample_uniform(rate_test_startprep_any, 0.05 0.10 0.15); * probability of being tested for hiv with the intent to start prep, if all criteria are fullfilled, including prep_any_willing; * dependent_on_time_step_length ; * rate_test_restartprep_any; * removed; @@ -786,7 +786,7 @@ and prep_any_willing = 1 and pref_prep_oral > pref_prep_cab / pref_prep_len and * date_prep_oral_intro; date_prep_oral_intro=2018.25; * Introduction of oral PrEP ; * dur_prep_oral_scaleup; dur_prep_oral_scaleup=4; * Assume 4 years to scale up oral prep to be consistent with previous analyses; -* prob_prep_oral_b; %sample_uniform(prob_prep_oral_b, 0.05 0.1 0.2 ); * 11dec17; *Probability of starting oral PrEP in people (who are eligible and willing to take oral prep) tested for HIV according to the base rate of testing; +* prob_prep_oral_b; %sample_uniform(prob_prep_oral_b, 0.05 0.1); * 11dec17; *Probability of starting oral PrEP in people (who are eligible and willing to take oral prep) tested for HIV according to the base rate of testing; * lapr and dpv-vr - define prob_lapr_b and prob_dpv_b which may be different to prob_prep_oral_b - we may need to redefine prep_any_willing so that it has more than two categories according to which prep forumations the person is willing to take; * annual_testing_prep_oral; annual_testing_prep_oral=0.25; * frequency of HIV testing for people on oral PrEP (1=annual, 0.5= every 6 months, 0.25=every 3 months); @@ -3008,12 +3008,10 @@ if country = 'Zimbabwe' then do; end; if caldate{t} > 2020.5 then do; - rate_1sttest = max ((rate_1sttest_2020 - ((caldate{t}-2020.5 )*an_lin_incr_test*fold_rate_decr_test_future)), 0); - rate_reptest = max ((rate_reptest_2020 - ((caldate{t}-2020.5 )*an_lin_incr_test*fold_rate_decr_test_future)), 0); + rate_1sttest = max ((rate_1sttest_2020 - ((caldate{t}-2020.5 )*an_lin_incr_test*fold_rate_decr_test_future)), 0.0001); + rate_reptest = max ((rate_reptest_2020 - ((caldate{t}-2020.5 )*an_lin_incr_test*fold_rate_decr_test_future)), 0.0001); end; -end; - * ts1m; * rate_1sttest = 1 - (1 - rate_1sttest )**(1/3) ; From a12c847f39e2344cf8339032249d724bccad0e79 Mon Sep 17 00:00:00 2001 From: LoveleenB-M <63258736+LoveleenB-M@users.noreply.github.com> Date: Wed, 11 Mar 2026 12:28:39 +0000 Subject: [PATCH 4/5] Self testing, prep and SW changes Self-testing was too high compared to Malawi observed data. Current PrEP use has been high across settings. Version control of SW parameters in the Zim parameter file, and these have been adjusted in the core file to ensure the SW program in core is not more impactful than the Zim one. --- Zim_parameters.sas | 20 +------------------- hiv_synthesis.sas | 12 ++++++------ 2 files changed, 7 insertions(+), 25 deletions(-) diff --git a/Zim_parameters.sas b/Zim_parameters.sas index e89f8859..c9b5d367 100644 --- a/Zim_parameters.sas +++ b/Zim_parameters.sas @@ -56,22 +56,8 @@ rate_ch_art_init_str_9 = 0.1 ; * sw_trans_matrix; %sample(sw_trans_matrix, 1 2 3, 0.10 0.80 0.10); -* sw_art_disadv; %sample(sw_art_disadv, 0 1, 0.10 0.90); - if sw_art_disadv=1 then do; - %sample_uniform(sw_higher_int, 2 5 10 20); - %sample_uniform(rel_sw_lower_adh, 0.8 0.9); - %sample_uniform(sw_higher_prob_loss_at_diag, 2 5 10); - end; - * rate_engage_sw_program; %sample_uniform(rate_engage_sw_program, 0.10 0.20 0.30); -* rate_disengage_sw_program; %sample_uniform(rate_disengage_sw_program, 0.01 0.03); - -* date_sw_prog_intro; date_sw_prog_intro=2010; -* sw_program; %sample(sw_program, 0 1, 0.2 0.8);sw_program=1;*Discuss; - if sw_program = 1 then do; - %sample_uniform(rate_engage_sw_program, 0.10 0.20); - %sample_uniform(rate_disengage_sw_program, 0.02 0.05); - end; +* rate_disengage_sw_program;%sample_uniform(rate_disengage_sw_program, 0.01 0.03); * CIRCUMCISION; @@ -95,10 +81,6 @@ rate_ch_art_init_str_9 = 0.1 ; ***Too many people on PrEP; -* rate_test_startprep_any; *%sample_uniform(rate_test_startprep_any, 0.10 0.15 0.30); - -* prob_prep_oral_b; *%sample_uniform(prob_prep_oral_b, 0.05 0.1); - * pref_prep_oral_beta_s1; %sample_uniform(pref_prep_oral_beta_s1, 0.6 0.7 0.8 0.9 1.0 1.1) ; * rate_choose_stop_prep_oral; %sample_uniform(rate_choose_stop_prep_oral, 0.10 0.20 0.30); diff --git a/hiv_synthesis.sas b/hiv_synthesis.sas index 4066d40f..6ffed17b 100644 --- a/hiv_synthesis.sas +++ b/hiv_synthesis.sas @@ -394,7 +394,7 @@ newp_seed = 7; self_test_targeting = stt * test_targeting; * date_self_test_intro; date_self_test_intro = 2018; -* rate_self_test; %sample_uniform(rate_self_test, 0.05 0.1 0.3 0.5 ); +* rate_self_test; %sample_uniform(rate_self_test, 0.01 0.03 0.10); * self_test_sens; self_test_sens = 0.93; @@ -656,13 +656,13 @@ newp_seed = 7; * p_rred_sw_newp; %sample_uniform(p_rred_sw_newp, 0.01 0.03 0.10); * rate of sex workers moving to one category lower; -* sw_art_disadv; %sample(sw_art_disadv, 0 1, 0.15 0.85); +* sw_art_disadv; %sample(sw_art_disadv, 0 1, 0.10 0.90); if sw_art_disadv=0 then do; sw_higher_int = 1; rel_sw_lower_adh = 1;sw_higher_prob_loss_at_diag = 1;end; if sw_art_disadv=1 then do; - %sample_uniform(sw_higher_int, 2 3); + %sample_uniform(sw_higher_int, 2 5 10 20); %sample_uniform(rel_sw_lower_adh, 0.8 0.9); - %sample_uniform(sw_higher_prob_loss_at_diag, 2 3); + %sample_uniform(sw_higher_prob_loss_at_diag, 2 5 10); end; * date_sw_prog_intro; date_sw_prog_intro=2010; @@ -676,9 +676,9 @@ newp_seed = 7; * rate_engage_sw_program; %sample_uniform(rate_engage_sw_program, 0.05 0.10); *previously 0.10; * rate_disengage_sw_program;%sample_uniform(rate_disengage_sw_program, 0.02 0.04); *previously 0.025; * effect_sw_prog_newp; %sample_uniform(effect_sw_prog_newp, 0.05 0.10); -* effect_sw_prog_6mtest; %sample_uniform(effect_sw_prog_6mtest, 0.20 0.35 0.50); +* effect_sw_prog_6mtest; %sample_uniform(effect_sw_prog_6mtest, 0.05 0.10 0.15); * effect_sw_prog_int; %sample_uniform(effect_sw_prog_int, 0.30 0.50 0.70); -* effect_sw_prog_adh; %sample_uniform(effect_sw_prog_adh, 0.10 0.15 0.25); +* effect_sw_prog_adh; %sample_uniform(effect_sw_prog_adh, 0.20 0.35 0.50); * effect_sw_prog_lossdiag; %sample_uniform(effect_sw_prog_lossdiag, 0.30 0.50 0.70); * effect_sw_prog_prep_any; %sample_uniform(effect_sw_prog_prep_any, 0.05 0.10); * effect_sw_prog_pers_sti; %sample_uniform(effect_sw_prog_pers_sti, 0.10 0.20); From f4d51fb7a1591e4056a8392ffc8beefa0ce317bc Mon Sep 17 00:00:00 2001 From: LoveleenB-M <63258736+LoveleenB-M@users.noreply.github.com> Date: Wed, 11 Mar 2026 13:19:13 +0000 Subject: [PATCH 5/5] Update hiv_synthesis.sas --- hiv_synthesis.sas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hiv_synthesis.sas b/hiv_synthesis.sas index 6ffed17b..a53f5265 100644 --- a/hiv_synthesis.sas +++ b/hiv_synthesis.sas @@ -3011,7 +3011,7 @@ if country = 'Zimbabwe' then do; rate_1sttest = max ((rate_1sttest_2020 - ((caldate{t}-2020.5 )*an_lin_incr_test*fold_rate_decr_test_future)), 0.0001); rate_reptest = max ((rate_reptest_2020 - ((caldate{t}-2020.5 )*an_lin_incr_test*fold_rate_decr_test_future)), 0.0001); end; - +end; * ts1m; * rate_1sttest = 1 - (1 - rate_1sttest )**(1/3) ;