This repository holds the model code for:
Le Guillou AV, Marcus JL, Krakower DS, Violette LR, Jenness SM. Potential risks and benefits of low-barrier access and monitoring for HIV pre-exposure prophylaxis: a modeling study. J Infect Dis. 2026; 234(4): 519-529. https://doi.org/10.1093/infdis/jiag369
It contains the R scripts for network estimation, model calibration, the over-the-counter PrEP scenarios, and the processing that produced the paper's tables and figures, along with the model parameter file (data/input/model_parameters.csv) and the lockfiles that record package versions (renv.lock for local runs, renv.lock.hpc for the cluster). Simulation output is not included. The work was funded by NIH/NIMH R21 MH136855 (OFFSCRIPT).
The model runs on EpiModelHIV. The version used for the paper is this release: https://github.com/EpiModel/EpiModelHIV/releases/tag/LowBarrier-JID
remotes::install_github("EpiModel/EpiModelHIV@LowBarrier-JID")Open the project in R 4.5 and restore the packages with renv:
renv::restore(exclude = "ARTnetData")ARTnetData is a private package and is needed only for network estimation (step A below). Every later step reads the fitted network objects that step A saves. The paper's networks were estimated with ARTnet 2.9.0, which is no longer public, so the lockfiles install ARTnet 2.9.3, the first version in the public ARTnet repository. Networks re-estimated with it may not match the paper's exactly.
Scripts are run from the project root. Each step folder has a z-context.R that switches between a small local model and the full model on a SLURM cluster (set hpc_context <- TRUE). For the cluster, edit mail_user and the node setup in R/hpc_configs.R.
- Networks (
R/A-networks/).1-estimation.Rfits the partnership network models from ARTnet (needs ARTnetData), and2-diagnostics.Rand3-assess.Rcheck them.workflow-networks.Rruns both on the cluster. - Calibration (
R/Z-calibration/).workflow-swfcalib.Rcalibrates the model to the Atlanta targets with swfcalib (swfcalib_config.Rdefines the waves), andworkflow-restart_point.Rwithchoose_restart.Rsaves the restart point.finalize_params.Rwrites the calibrated values todata/input/model_parameters.csv.R/z-gfr_optim.Rfits the starting distribution for the renal function module. - Intervention scenarios (
R/F-intervention_scenarios/). The scenarios are built in code (utils-scenarios.Rand the0*-make_scenarios*.Rscripts) and run from the restart point by theworkflow-intervention*.Rscripts:workflow-intervention.Rfor the main scenarios,workflow-intervention_plots.Rfor the coverage grid behind the contour plots,workflow-intervention_find.Rfor the search for target coverage levels, andworkflow-intervention_indics.Rfor the sensitivity analyses.1-scenarios.Rruns a small version locally. - Tables and figures (
R/F-intervention_scenarios/).2-process_tables.Rand2-process_plot_data.Rsummarize the merged simulations, and3-contour_plot.R,4-filter_csv_tables.R, and6-tables.Rbuild the figures and tables indata/output/.
This is a snapshot of the private project repository, taken July 9, 2026, at the revision submitted to the journal. Its code matches the private repository at commit 30dc8a0, apart from two added lines in 3-contour_plot.R that save the contour figure as TIFF and PDF.