Agents who are linked in the network can engage in sexual and/or injecting behavior. In order to increase the model’s efficiency, risk behavior is only simulated be- tween serodiscordant agents at each time step.

A PWID-PWID agent dyad can engage in sexual ac- tivity exclusively, injecting activity exclusively, or both. The probability that a pair of PWID agents engage in syringe sharing was based on previously published es- timates. We assumed that undiagnosed, HIV-infected PWID agents are equally likely to share syringes as un- infected PWID agents. Moreover, we assumed that diag- nosed (i.e., HIV-infected and tested positive) PWID were 50 less likely to share syringes than undiagnosed agents, based on previous studies. For each PWID-PWID agent dyad that is selected to share syringes, the specific number of syringe sharing events in a time step was determined from a uniform distribution, with minimum value 1 (i.e., once in a month) and maximum value 30 (i.e., sharing sharing every day).

To model sexual HIV transmission, we simulated the monthly number of sexual acts and the proportion of those acts that are unprotected between each pair of connected, serodiscordant agents. We assumed that the number of sex acts per month between members of the same agent class followed a Poisson distribution. Speci - cally, at every time step, the number of sex acts for each agent was drawn from a Poisson distribution, with means provided by the input parameters. If the values for each agent in a dyad differed, the average of the two values was taken. Next, we estimated the proportion of these sex acts that were unprotected, based on previously pub- lished estimates. We considered “unprotected” to be any sexual activity in which HIV transmission can occur (no condom use, incorrect condom use, etc.) Similarly to syringe sharing events, we assumed that HIV-diagnosed agents were 50 less likely to engage in unprotected in- tercourse with their partners, based on previously con- ducted studies.[? ? ] We assumed that HIV-infected agents of unknown status engaged in sexual risk behav- ior at the same probability as HIV negative individuals.


If a pair of serodiscordant agents engage in sexual or injecting risk behavior, ACTsim implements a stochas- tic algorithm to determine whether contact transmission occurs. To calculate the probability of transmission to an uninfected partner for each type of risk behavior, we use per-act probabilities, based on previously published estimates. As shown, the risk of transmission during unprotected anal intercourse between men is greater than that during unprotected vaginal intercourse; however, we did not model partner roles among MSM (e.g., insertive vs. receptive) explicitly. Furthermore, we did not model unprotected anal intercourse between women and men.

The probabilities listed in Table ?? represent the aver- age risk of transmission during an unprotected coital act or syringe-sharing event during latent stage HIV infec- tion. Viral load is model implicitly, such that these val- ues represent a mean set-point viral load (approximately 4 log10 copies/mL) in the HIV-infected population. To account for higher viral load and an increased risk of transmission during acute phase infection, we multi- plied these probabilities by a factor of 4.3 during the first three time steps following seroconversion, which rep- resents the average increase in transmission risk during acute HIV infection.[? ? ] In order to calculate the over- all transmission risk per partnership per time step, we employed a Binomial process model,[? ] i.e.: where is the per-act transmission probability, speci c to the type of risk activity engaged in between two serodiscordant agents (i.e., parenteral, anal intercourse, or vaginal inter- course). These probabilities were also dependent on the HIV treatment status and adherence pattern of the HIV- infected partner. The number of “trials” (total number of unprotected sex or syringe sharing events) per part- nership per time step, n, was determined for each dyad as described above.

A detailed description of our acute HIV disease model has been published previously. Following acute infec- tion (represented by three monthly time steps following seroconversion), HIV-infected agents in latent stage in- fection progress to AIDS at a rate dependent on HIV treatment status and adherence. In a manner similar to that of an ABM examining HIV transmission among MSM, we do not model CD4 count explicitly. Instead, we assigned monthly probabilities of receiving an AIDS diagnosis such that the median time to this event ap- proximated that which has been observed empirically.


The following are the core functions associated with an agent class.

def get_ID(self):
   #Returns agent ID
   return self._ID

def partner(self, partner):
   #Partner self agent to partner agent
   assert partner in self._partners:
   raise KeyError("Partner %s is already bonded with agent %s"%(partner.get_ID(), self._ID))

def unpartner(self, partner):
   #Removes partner from self agent partner list
       if self != agent:self._partners.remove(agent)
   except KeyError:
       raise KeyError("agent %s is not a member of agent set %s"%(agent.get_ID(), self.get_ID()))