This Java package implements an Individual-Based Model (IBM) to explore the potential impact of introducing Doxy-PEP (doxycycline post-exposure prophylaxis) among men who have sex with men (MSM) in New South Wales, Australia.
- Ben Hui; ORCiD ID: 0000-0002-6567-5821
This model extends the Package_ClusterModel to simulate the effects of Doxy-PEP on STI transmission dynamics. It introduces additional logic to support Doxy-PEP allocation and its impact on STI natural history.
- Simulation_DoxyPEP Extends Simulation_ClusterModelTransmission to launch simulations with Doxy-PEP support
- Abstract_Runnable_ClusterModel_MultiTransmission_Prophylaxis Extends Runnable_ClusterModel_MultiTransmission with additional fields and overridden methods to model Doxy-PEP allocation and effects.
- Runnable_ClusterModel_Prophylaxis Extends Abstract_Runnable_ClusterModel_MultiTransmission_Prophylaxis.This class is tailored to simulate Doxy-PEP introduction among MSM in NSW and is invoked by Simulation_DoxyPEP.
This class extends Runnable_ClusterModel_ContactMap_Generation_SingleMap from the base package. All parameters and configurations applicable to the parent class also apply here. Refer to the Package_ClusterModel documentation for more details.
The key features are:
- Fixed the number of infection to 3 - syphilis, gonorrhoea and chlamydia.
- Fixed the number of infection sites to 4 - any (for syphilis), urethral, rectal and orophraygenal for gonorrhoea and chlamydia.
- Fixed the numebr of act to 5 - any sex (for transmission of syphilis), anal sex, oral sex, kissing, amd rimming (for transmission of gonorrhoea and chlamydia).
The model is design to support investigation of:
-
Doxy-PEP eligiblity/uptake triggers:
- HIV and HIV PrEP usage (as a simple proprotion of the population)
- Syphilis or other STI diagnoses
- Number of sexual partners in the past 12 months
-
Doxy-PEP behavioral dynamics:
- Persistence (duration of Doxy-PEP use)
- Adherence (likelihood of use during sexual encounters)
- Uptake adjustments based on previous acceptance or refusal
Model parameters are defined in:
- simSpecificSim.prop
- simSpecificSwitch.prop (if present)
- User defined SEED_MAP file (if present)
See Working directory for setup details.
The model consists of three main components:
These components can be located anywhere, provided paths are correctly set in simSpecificSim.prop and/or input arguments. For clarity and reusability, it's recommended to keep at least the working directory separate.
A possible set up could be:
Network/ └── Partnership network and risk groups CSVs Executable/ ├── ClusterModel_lib/ │ └── class libraries use by ClusterModel.jar ├── ClusterModel.jar └── Launcher_Doxy_PEP.jar WorkingDir/ ├── simSpecificSim.prop ├── simSpecificSwitch.prop └── Seed_List.csv for example
-
Generate Network Files Create the required network, and if required, associated risk groups files, and place them in the Network folder.
-
Download ClusterModel Executable Download ClusterModel.jar from the Package_ClusterModel GitHub repository and place it in the Executable folder.
-
Add Required Libraries Download the necessary class libraries as specified in the Package_ClusterModel documentation. Place them in the ClusterModel_lib folder inside the Executable directory.
-
Add Launcher Executable Place Launcher_Doxy_PEP.jar in the Executable folder.
-
Set Up Working Directory Ensure your working directory contains an XML file named simSpecificSim.prop. If needed, also include simSpecificSwitch.prop.
-
(Optional) Prepare Seed List Generate a seed list (a CSV file), if required, for your simulation.
-
Configure Simulation Settings Edit simSpecificSim.prop to update file paths and adjust simulation parameters as needed.
-
Run the Model Execute the model (see Executable. If successful, the model should run and results will be generated in the working directory.
This component—potentially organised as a standalone directory—stores the partnership network utilised by the model. For more information on the definition of a network and the various methods available to generate one, refer to the Package_ClusterModel documentation.
By default, the model uses a single network generated by Runnable_ClusterModel_ContactMap_Generation_SingleMap. Although multimap networks generated by Runnable_ClusterModel_ContactMap_Generation_MultiMap are expected to be compatible, they have not yet been tested.
Once the network is generated and placed in the appropriate directory, you must update the following entry in the simSpecificSim.prop file to point to the folder containing the network:
<entry key="PROP_CONTACT_MAP_LOC">...</entry>See the section on simSpecificSim.prop or a more detailed explanation.
To run the model, use the following Java command (replace items in bold with your specific setup):
java -jar Launcher_Doxy_PEP.jar File_Path_Working_Directory [-export_skip_backup] [-printProgress] [-seedMap=SEED_MAP]
Arguments:
- File_Path_Working_Directory: (Required) Path to the working directory where the simulation will run.
- -export_skip_backup: (Optional) Skips the creation of backup files for each snapshot.
- -printProgress: (Optional) Displays simulation progress in the console output.
- -seedMap=SEED_MAP: (Optional) Specifies the path (SEED_MAP) to a custom seed map file.
The working directory must contain one XML file named simSpecificSim.prop, which defines the simulation settings and default model parameters.
Optionally, the directory may also include:
- simSpecificSwitch.prop: Specifies when and how parameter values change during the simulation.
- One or more seed list CSV files (either in the root or a subfolder of Working directory)
Both simSpecificSwitch.prop and seed list files follow the same format and purpose as those used in the Package_ClusterModel. Please refer to its documentation for further details.
This model extends the Runnable_ClusterModel_MultiTransmission class from the Package_ClusterModel package. As such, most parameter configurations applicable to Runnable_ClusterModel_MultiTransmission are also relevant here. In particular, settings related to sexual behavior, STI natural history, and testing remain unchanged. For a comprehensive description of these parameters, please refer to the documentation for Package_ClusterModel.
For Runnable_ClusterModel_Prophylaxis, the model assumes four risk groups based on testing patterns, defined as follows:
| Risk Group Index | Definition |
|---|---|
| 0 | HIV+ |
| 1 | HIV-, using HIV PrEP |
| 2 | HIV-, not using HIV PrEP |
| 3 | Low risk |
Risk group allocation occurs before the simulation starts and should ideally be defined in the file: RiskGrp_Map_CMAP_SEED.csv located in the Network folder or working directory.
In addition to the standard parameters, this model supports four additional entries under simSpecificSim.prop:
<entry key="PROP_PEP_START_AT">...</entry>
<entry key="PROP_PEP_EFFICACY">...</entry>
<entry key="PROP_PEP_PERSISTENCE_ADHERENCE">.../entry>
<entry key="PROP_PEP_UPTAKE">...</entry>These parameters are specific to Doxy-PEP (Doxycycline Post-Exposure Prophylaxis) modeling and should be configured according to your simulation scenario.
| Property Name | Type | Description | Examples |
|---|---|---|---|
PROP_PEP_START_AT |
Integer | The model time (in days) when Doxy-PEP becomes available. | <entry key="PROP_PEP_START_AT">5840</entry> |
PROP_PEP_EFFICACY |
Array of float | Protective efficacy of Doxy-PEP for each infection type. | <entry key="PROP_PEP_EFFICACY">[0.77, 0.22, 0.78]</entry> means 77% efficacy for infection 0, 22% for infection 1, and 78% for infection 2. |
PROP_PEP_PERSISTENCE_ADHERENCE |
Array of double | Defines duration of Doxy-PEP usage and adherence. Format: [mean, sd, adherence] |
• <entry key="PROP_PEP_PERSISTENCE_ADHERENCE">[180, 180, 1]</entry> → duration from Gamma(mean=180, sd=180), 100% adherence • <entry key="PROP_PEP_PERSISTENCE_ADHERENCE">[180, -200, 0.5]</entry> → duration from Uniform(180, 200), 50% adherence.• <entry key="PROP_PEP_PERSISTENCE_ADHERENCE">[180, 0, 0.5]</entry> → fixed duration of 180 days, 50% adherence |
PROP_PEP_UPTAKE |
Array of float | Parameters governing Doxy-PEP uptake upon STI testing. Format: [HIV/PrEP, Syphilis, 2xSTI, PartnerAdj, PriorUseAdj, NoPriorUseAdj] |
``[0.1, 0.2, 0.3, 1.5, 0.6, 0.7]` means: • 10% uptake for HIV/PrEP • 20% for syphilis • 30% for 2 STIs in 12 months • Adjusted ×1.5 if >5 partners • ×0.6 if used Doxy-PEP before • ×0.7 if not used before |
- Hui BB, Medland N, Ryder N, Wareing H, Regan D, Gray RT. Reducing STI Burden in MSM with Doxy-PEP: Evidence from Individual-Based Modelling in Australia (Preprint). medRxiv. 2025:2025.06.24.25330172. doi: https://doi.org/10.1101/2025.06.24.25330172
This project was supported by the BBV & STI Research, Intervention and Strategic Evaluation (BRISE) program, funded by the NSW Ministry of Health. The Kirby Institute is funded by the Australian Government Department of Health and Aged Care. The views expressed in this publication do not necessarily represent the position of the Australian Government
This research was produced in whole or part by UNSW Sydney researchers and is subject to the UNSW intellectual property policy. For the purposes of Open Access, the author has applied a Creative Commons Attribution CC-BY public copyright licence to any Author Accepted Manuscript (AAM) version arising from this submission.