Skip to main content
Advertisement
  • Loading metrics

Efficient and accurate simulation of infectious diseases on adaptive networks

  • Nils Gubela ,

    Roles Data curation, Formal analysis, Investigation, Methodology, Software, Writing – original draft, Writing – review & editing

    * nils.gubela@fu-berlin.de

    Affiliations Department of Mathematics and Computer Science, Freie Universität Berlin, Berlin, Germany, International Max-Planck Research School “Biology and Computation” (IMPRS-BAC), Max-Planck Institute for Molecular Genetics, Berlin, Germany

  • Max von Kleist

    Roles Conceptualization, Funding acquisition, Project administration, Supervision, Writing – original draft, Writing – review & editing

    Affiliations Department of Mathematics and Computer Science, Freie Universität Berlin, Berlin, Germany, Project Groups, Robert-Koch Institute, Berlin, Germany

Abstract

Mathematical modelling of infectious disease spreading on temporal networks has recently gained popularity in complex systems science to understand the intricate interplay between social dynamics and epidemic processes. As analytic solutions can usually not be obtained, one has to resort to exact stochastic simulation algorithms, yet these have remained infeasible for the large sizes of realistic systems. Here, we introduce a rejection-based stochastic sampling algorithm with high acceptance probability (‘high-acceptance sampling’; HAS), tailored to simulate disease spreading on adaptive networks. We prove that HAS is exact and can be multiple orders faster than Gillespie’s algorithm. While its computational efficacy is dependent on model parameterization, we show that HAS is applicable regardless on whether contact dynamics are faster, on the same time-scale, or slower than the concurrent disease spreading dynamics. The algorithm is particularly suitable for processes where the spreading- and contact processes are co-dependent (adaptive networks), or when assumptions regarding time-scale separation become violated as the process unfolds. To highlight potential applications, we study the impact of diagnosis- and incidence-driven behavioural changes on virtual Mpox- and COVID-like epidemic and examine the impact of adaptive behaviour on the spreading processes.

Author summary

Infectious disease spreading is often affected by the dynamics of human-human contacts. These contact dynamics may change over time, and in direct response to infection kinetics, through e.g. self-isolation, risk-aversion, or any adaptive behaviour, which can generate complex dynamics as seen in recent outbreaks with e.g. COVID-19, as well as Mpox clade IIb (2022). Agent-based models (ABMs) are often derived and numerically simulated to study the complex interplay between epidemic- and contact dynamics and to derive insights for disease control. However, numerical simulation of these models denotes a computational bottleneck and limits the applicability of large ABMs. We introduce a novel numerical method called ‘high-acceptance sampling’ (HAS), which allows for the exact simulation of outbreaks with adaptive contact behaviour. We prove that HAS is exact, show that it is faster, and that runtime grows with at least an order of magnitude less than state-of-the art exact simulation methods. This enables simulation of outbreaks on large populations, as well as parameter estimation for large systems. We apply HAS to study an Mpox- and COVID-like pandemic and the impact of adaptive behaviour on different time-evolving contact networks.

Introduction

Mathematical modelling and simulation has a long history in epidemiology [13]. In recent outbreaks like SARS-CoV-2 or Mpox, mathematical modelling has contributed decisively to guiding and understanding public health interventions [4, 5], disease prevalence [6], as well as pathogen evolution [5]. However, many approaches have also been developed because of convenient mathematical properties that are not satisfied in a real life setting [7]. For example, mean-field models are easy to analyse but do not capture relevant spreading paths and may provide incorrect predictions [8]. In addition, mean-field models are unable to adequately capture adaptive social behavior [9].

In recent years, agent-based models have become increasingly popular in epidemiology and the social sciences [1015]. Agents are discrete, autonomous entities that behave according to simple rules. Agent-based models are easy to understand, but can capture complex dynamics, e.g. through socio-behavioural rules. In our case, we model the spread of a pathogen between heterogeneous agents. The agents are nodes in a time-dependent adaptive contact network, which can be understood as a social network or a sexual contact network, depending on the pathogen [1618].

The spread of the pathogen between two connected agents and the dynamics of the contact network are described by stochastic processes. The spreading process depends on the state of the network, since transmission is only possible between connected agents. Importantly, the evolution of the network may also sometimes depend on the state of the infection process [19]. For example, diagnosed agents may isolate themselves and meet fewer people until they recover. Similarly, a critical number of infected agents may induce risk-averse behaviour in susceptible agents.

A convenient assumption for the analysis of dynamical processes in evolving networks is the separation of time-scales between the contact network process and the spreading process. If the network process is much faster than the spreading process, the connectivity patterns effectively disappear and classical mean-field or degree-based ordinary differential equation models may be appropriate approximations to the original system [20]. If the spreading process is much faster than the network process, only a static snapshot of the network is observed by the spreading process. In this case, either static network modelling [21, 22] or modelling of the contact network dynamics may be sufficient to approximate epidemic dynamics [2325]. Both assumptions allow the use of a wide range of analytical and numerical methods. However, in most real-world applications the network and the spreading process evolve on comparable time-scales [2631].

The gold standard for exact simulation of agent-based systems is the Gillespie or stochastic sampling algorithm (SSA) [3235]. It is a continuous-time Markov algorithm in which a single simulation step follows a Poisson process and the duration of that step is therefore sampled from a real-valued waiting time distribution. An update is either an epidemic event or a change in the contact network, which makes the SSA algorithm unsuitable for large networks.

There are already adaptations of SSA to networks: For example, if the dynamics of the contact network are independent of the spreading process, a realisation of the temporal network can be precomputed [23]. The (now fixed) temporal network can then be used for exact simulations of the spreading process [3642], similar to the ‘integral method’ used in systems biology [43, 44]. However, in realistic settings, contact topology and spreading dynamics co-evolve, which is referred to as ‘adaptive networks’ [16, 4548]. For adaptive networks in particular, none of the previously introduced approaches can be used because each simulated trajectory has its own realisation of the network, which must be simulated in parallel. Some implementations therefore arbitrarily discretise time and perform parallel updates of the contact network and contagion spreading [49, 50], leading to numerical errors that depend on the chosen time discretisation [51]. For large time steps, computationally efficient simulations can be achieved, but the introduced numerical errors make the simulation results unreliable [52]. On the other hand, small time steps offer no computational advantage over the SSA [53]. Finally, it is completely unclear a priori which time step is appropriate as the dynamics and relevant time scales of the process may change over the course of the simulation.

We use a network model where the presence of each edge over time is governed by a continuous-time Markov chain. This allows us to configure the expected degree of each node per time step, as well as properties like assortativity, degree correlations, and clustering, resulting in realistic network structures. When all rates are homogeneous, low-dimensional approximations for ‘edge classes’ can be derived [54, 55], which are numerically fast to solve and analytically tractable.

We formulate an exact rejection-based algorithm to simulate spreading dynamics on adaptive networks as a generalisation of the method of St-Onge et al. [56]. The core idea is to focus on epidemic events and leap over most individual contact updates. Because we design the method as a high acceptance sampling (HAS) algorithm, it is much faster than SSA in all real-world applications, yet it generates trajectories from the same statistical distributions as SSA. HAS is applicable to adaptive network models involving all combinations of network and spreading time scales and requires no assumptions in regards to mixing of nodes (agents). Furthermore, the network process can have several different time scales. We compare the performance of HAS with SSA and highlight the influence of adaptivity on various epidemic spreading models. Proofs of the exactness of HAS can be found in S1 Text.

Methods

We model the spread of infection in a population by representing the population as a temporal network and allowing the infection to propagate through it. This process involves network events, contact-dependent events (such as infections), and spontaneous transition events.

The network model

In our model, we examine a system with N agents that dynamically form and dissolve contacts with each other over time, leading to a heterogeneous network. Each agent is represented as a node in a graph, and an edge is drawn between two nodes when the corresponding agents are in contact. The time-dependent adjacency matrix A(t) has an entry aij(t) = 1 if agent i is in contact with agent j at time t, and aij(t) = 0 otherwise. The network is undirected and unweighted, meaning thatA(t) is a symmetric matrix with entries consisting of 0 and 1. The status of each edge aij is governed by a two-state continuous-time Markov process, where edges are created at rate and removed at rate . These rates are expressed in inverse time units. We fix , ensuring that each connection persists for an average duration of one time unit. Note that can, in principle, vary heterogeneously, but we fix them here to establish a time scale for the system. Each agent possesses its own pair of contact parameters, and , which are used to determine the edge rates [57]. For example, creates a neutral network, where nodes connect randomly, while generates an assortative network, where nodes with similar degree tend to connect. In summary, we obtain the reactions

The rates can be calculated from a distribution that represents the expected number of contacts over the simulation time frame [0,T]. The probability of creating a link between agent i and agent j during the simulation is given by 1 − , hence the rates can be determined by solving

This equation ensures that, throughout the simulation, the expected number of contacts for each agent aligns with the specified distribution. The expected number of contacts per agent should remain constant, , rather than scaling with the size of the system. This implies that the creation rates scale inversely with the number of agents, (since ).

Contact-driven agent-based contagion models

In the simplest form, the spreading is modeled by dividing each agent into one of two compartments, either susceptible S or infected I. Upon contact, a susceptible agent i may become infected by an infected agent at a rate . This reaction is dependent on the relationship of two agents and hence we call it contact dependent event. While this reaction is fundamental to all spreading models, it can be expanded by incorporating additional spontaneous transitions. These transitions do not rely on contacts and affect only a single agent at a time. Adaptivity is introduced by considering the diagnosis of infected agents, thereby adding a diagnosed compartment D. The infected agent i transitions to the D compartment with rate . Once diagnosed, agent i loses all existing contacts and forms new contacts at a reduced rate, , where . This system will be referred to as SID. We also consider models in which the infectious period eventually ends and infected or diagnosed agents become recovered. Agents in the recovered compartment R are not eligible for transmitting infection or becoming infectious. Recovery occurs with rate and we refer to this model as SIDR. Lastly, we consider the case in which recovered agents could become susceptible again (SIDRS). The spontaneous transition from R to S occurs at rate . In summary, we consider the following reactions

The SI model contains reaction , the SID model contains , the SIDR model contains and the SIDRS model contains all listed reactions.

Transitions between compartments are primarily spontaneous; that is, they depend solely on the individual agent’s state. However, transitions from S to I are contact-driven and depend on both the agent states and the network structure.

Moreover, agents can make transient contact adjustments based on the epidemic’s progression, governed by the rate . These changes depend on the epidemic’s state, as agents may be aware of the number of diagnosed individuals, causing to scale with D(t). As more agents become diagnosed, the remaining susceptible agents reduce their contact behavior more quickly. This behavior was observed, for example, during the 2022 mpox outbreak in communities of men who have sex with men [58]. We define the rates and to represent the reduction of contacts and the return to normal behavior, respectively:

(1)

with some arbitrary scaling factor c>0. If an agent i adjusts its behavior, we set its contact creation rate to , so that it behaves like a diagnosed agent. This behavior is reversed at a rate , which scales inversely with the diagnosed compartment’s size.

Exact stochastic simulation of the system

At each time t the set of possible transition events is denoted by . The set of transitions can be partitioned into ‘network events’, ‘contact dependent events’ and ‘spontaneous transition events’. In our model the contact dependent events are infection events. The network events consist of one event per edge which is either a creation event if aij(t) = 0 and a deletion event if aij(t) = 1. The infection events contain the infection of the susceptible agents. All other transitions between the compartments are collected in the transition events, which are diagnosis or recovery. The waiting times for all events are exponentially distributed. The parameter is the corresponding rate. This implies that the time to the next event in the system is exponentially distributed with parameter

where , and are the sums of all rates in the set of network events, infection events, and transition events, respectively. The kth reaction is chosen proportionally to its rate, i.e. . Executing the transition and updating the contact network and the epidemic state accordingly gives the state of the system at a new time step. This procedure can be repeated until a time T is reached or a specific criterion such as (pandemic over) is met, see Fig 1A.

thumbnail
Fig 1. Methodological overview.

A. Updating steps of the infection network using SSA (top) and HAS (bottom). SSA updates all network changes, whereas HAS jumps directly to the first infection event. B. Edge existence probability after when the edge exists at time t0 (left) and when it did not exist at time t0 (right). C. All rejection steps for edge aij until the transition is accepted. The blue area depicts the edge existence probability and the green area depicts the rescaled edge existence probability, while the dashed horizontal line shows the upper bound of the edge existence probability cij. The red crosses depict a random uniform number , which determine acceptance or rejection.. The left shows the process with naive upper bound B0 from Eq 3, and the right shows the process with tight upper bound B from Eq 4. On the right, all rejection steps are bypassed, and the time to the last rejection step must be sampled after moving to the infection event. Red vertical lines show rejected time points. The grey vertical lines show rejected time points that were skipped.

https://doi.org/10.1371/journal.pcsy.0000049.g001

This algorithm is exact, i.e. all distributions and moments obtained converge to their exact values. However, the computational complexity is dominated by the contact dependent transitions. The expected running time of SSA is given by the expected number of updating steps multiplied with the expected running time per updating step [59]. The expected number of updating steps is the inverse of the expected time steps, which again is the inverse of the expected sum of reaction propensities. The time steps are inversely proportional to the sum of the rates. The expected running time of SSA is given by

The first term corresponds to the total effort of simulating the network, the second term comes form the effort of infections and the last term accounts for transition events (I to D and {I, D} to R). The expected effort of an updating step of the network or an infection is , since both actions require two agents, that need to be found. The expected size of the sum of the rates are

Note that the time step for the network process consistently scales as . In contrast, the time step of the epidemic propagation process scales as , which approaches O(1), as the number of recovered individuals increases. This means that the expected running time of SSA scales according to the network process

High acceptance sampling (HAS) for adaptive networks

In the following section, we derive an exact sampling method for modeling disease spread on adaptive networks. The running time of the method does not scale with the network process but rather with the infection process, as . To achieve this, we employ acceptance-rejection sampling [60], which reduces simulation effort while generating exact trajectories. In the acceptance-rejection method, an upper bound B on the sum of the transition rates is used to determine the next time step. The kth reaction is selected with rate . Since B is an upper bound on the sum of all rates , there is a non-zero probability that none of the transitions will be selected. In this case only the time is updated and no transition occurs. This method is particularly useful when the rates are time-dependent. We introduce a tight upper bound B to maximise the number of acceptance steps.

The state of the network influences the contact-dependent infection rates. Instead of realising the process governing the existence of the edge aij over the entire simulation, we sample the state on demand using the probability of edge existence P(aij(t) = 1). We have the following Markovian master equation

Assuming as initial condition, this ODE has the two solutions:

(2)

This allows on-demand sampling of the edge state at any time.

Naive upper bound. If we assume that an infection can spread from any infected or diagnosed agent to any susceptible agent, we obtain the following naive upper bound B0 on the sum of the propensities of the transitions of the spreading process (‘contact-dependent-’ and ‘spontaneous transitions’)

(3)

The time step is exponentially distributed with parameter B0, and transition k is selected proportional to its rate . One step of acceptance-rejection sampling with the naive upper bound B0 is done in the following way:

  1. Calculate the naive upper bound B0 using Eq 3
  2. Sample the time increment and set
  3. Sample the next event with probability
  4. If the next event is a ‘spontaneous transition’, i.e. diagnosis or recovery, execute the event and go to step 1.
  5. Else edge (i, j) is selected for a possible ‘contact-dependent transition’, i.e. infection. If for , infect agent j, else set . Go to step 1.

Here, we assume that the network is fully connected and sample the state of the edge between (i, j) at time t to determine if the infection is possible. The matrix records the times when the edges were last observed. In step 5, we can set the last state of edge (i, j) to 0 for the following reason: the previous state of the edge can only be 1 if it was initialized as such. If it was initialized to 0, the observed state will only change to 1 if the edge was chosen for a potential infection and was confirmed to exist. In this case, it becomes irrelevant for further spreading, since (i, j) is no longer a susceptible-infected pair. For the remainder of this paper, we assume the previous state of all edges is 0 and initialize the observation time to . This assumption ensures that, as the simulation begins at t = 0, the edge existence probability is close to equilibrium. Although this algorithm does not require simulating all network processes, it does not enhance the performance of SSA, as the rejection probability at each step remains high. Note that  +  (Fig 1B) for large t and cij = O(1/N).

Tight upper bound. To reduce the computational overhead of many rejection steps, we need to minimize the propensity bound B0. When the pair (i, j) is selected, the infection spreads with probability . This means that the edge aij is equipped with two events, spreading and rejection, which have the rate and , respectively. The function is bounded above by cij, see Fig 1C, which means that the rate of acceptance of the spread over aij is bounded by . This introduces the tight constant bound for the pandemic transition rates

(4)

We use this upper bound to generate larger time steps and reduce the rejection probability compared to the process with the naive upper bound B0. With the tight upper bound, many rejection steps are leaped over. Focusing on a single edge aij, we need the time between the last rejection of an infection along aij and the current time t. This time is exponentially distributed with parameter , but the actual sampled period t is exponentially distributed with parameter . Therefore, we sample an additional time step and obtain

The edge existence probability is then evaluated using a time span of length (). This ensures that the edge existence probability still accounts for leaped rejection steps, see Fig 1C.

Algorithmically, a step of HAS is performed in the following way:

  1. Calculate the tight upper bound B using Eq 4
  2. Sample the time increment and set
  3. Sample the next event with probability
  4. If the next event is a ‘spontaneous transition’, i.e. diagnosis or recovery, execute the event and go to step 1.
  5. Else edge (i, j) is selected for a possible ‘contact-dependent transition’, i.e. infection. Sample and set . If for , infect agent j, else set . Go to step 1.

The calculation of B requires steps, but since only a single rate changes per time step, a subsequent update of B can be done with constant effort O(1).

HAS is exact, a proof can be found in S1 Text. For each infection event, the acceptance probability for a step of size is given by

The step size is exponentially distributed with parameter and hence the expected rejection probability is given by

This is dominated by the infection probability (infection before edge dissolving).

Comparison of HAS and SSA

Numerical evaluation of exactness

We compare the outcomes of SID processes on adaptive temporal networks (model details in Methods section, simulated using both the SSA and the HAS methods. As can be seen in Fig 2, the first and second moments, as well as the distribution of agents across compartments at the end time, are indistinguishable between the two methods, confirming the exactness of the HAS method (see Fig 2). Sampling 100,000 trajectories took 1,768 seconds with SSA, whereas it required only 59 seconds with HAS.

thumbnail
Fig 2. Comparison of numerical results for an SID model simulated with SSA vs. HAS.

The network system consists of N = 100 agents with an initial infection size of . Infection rates are distributed , diagnosis rates . The expected number of contacts per time step is sampled from an exponential distribution with parameter 1, and each value is shifted by 1 to eliminate agents with 0 contacts. Each contact is expected to last for one time step (). Diagnosed agents cut their contacts in half (). A total of 100,000 trajectories were sampled for each method. A. Mean number of agents per compartment (SID) per time step. B. Variance of the number of agents per compartment per time step. C. Distribution of agents per compartment at the end of the simulation T = 24.

https://doi.org/10.1371/journal.pcsy.0000049.g002

Numerical comparison of sampling speed

In order to quantify the speed difference between SSA and HAS, we examined the runtimes of both methods in scenarios with varying parameters. The varied parameters are system size (Fig 3A), edge existence probability (Fig 3B) and infection probability (Fig 3C). Simulations with SSA become infeasible for larger systems or systems with many contacts. Although HAS also grows polynomially with N, its exponent is lower than for SSA. In the analyzed simulation setup, sampling 1,000 trajectories of a system with 100,000 agents using HAS is faster than sampling a single trajectory of the same system using SSA. As the infection probability approaches 1, the runtimes of both methods converge. In this limit, the network dynamics completely determine the spreading, since every contact lead to infection. But the runtime of HAS remains constant for a wide range of infection probabilities.

thumbnail
Fig 3. Comparison of computational speed between HAS and SSA.

The base process involves N = 100 agents, starting with an initial infection size of . Infection and diagnosis rates are homogeneous, set at and , respectively. The expected number of contacts per time step is drawn from an exponential distribution with parameter 1, ensuring no agents have zero contacts by shifting each value by 1. Each contact persists on average for one time step. We sampled 1,000 trajectories for each parameter and method up to an end time of T = 24. A. System size varied from 100 to 100,000 agents. B. The probability of edge existence, defined as  +  , was adjusted between 0 and 1 while keeping the edge deletion rate constant and modifying . C. The infection probability, calculated as  +  , was varied by holding the edge deletion rate constant and altering the infection rate . The SSA algorithm reaches completion once every agent is infected, benefiting from a reduction in running time when the infection probability is close to 1. Computations were conducted on a Xeon Skylake 6130 with 3GB of RAM [82]

https://doi.org/10.1371/journal.pcsy.0000049.g003

Theoretical sampling speed of HAS

Similar to the complexity of SSA, the expected running time of HAS is given by

The first term is given by the infection events, which require an effort of (need to find two nodes in a list of size N) and the second term is given by the other spontaneous transitions that are independent of contacts. The expected size of the average transition rate is the same as with SSA, but the expected network infection rates are different

Identifying the infection event has size and hence the total effort of HAS scales with the infection process

If we assume that the compartments are on average of size O(N), the expected effort for HAS becomes , which is O(N) faster than SSA. However, the examples in Fig 3 suggest that the speed increase could be higher. Most of the time either the susceptible compartment S or the infectious compartment I  +  D is of size O(N) while the other is smaller, which can move the complexity of HAS closer to O(N). Consequently, the speed increase compared to SSA approaches .

Examples of spreading processes on adaptive networks

Transient behaviour changes in response to infection incidence

We study the spread of an infection in an SIRD model on four types of contact network, each with the same mean node degree but differing in degree distribution: uniform, exponential, Poisson, and scale-free. The first three distributions are characterized by their mean, while the scale-free network is generated using a discrete one-parameter Weibull distribution (see S1 Fig). Each network consists of agents, with each agent having an average of 10 contacts per week. In Fig 4A we test different infection probabilities  +  , where i and j is a connected S-I-pair (in the absence of diagnosis), whereas in panels B-E, an S-I contact has a 55% probability of transmitting the disease. Half of the infected agents are getting diagnosed, at which point the diagnosed agents lose all contacts until recovery. Recovery occurs, on average, 5 days post-infection, corresponding to a recovery rate of . These parameters result in a mpox like outbreak, which is unfolding at a faster time scale in populations with varying contact distributions [6, 61].

thumbnail
Fig 4. Transient behaviour changes on different network types.

We simulated an outbreak on an SIDR model across different network degree distributions and scenarios. In the first scenario, agents reduce their contacts after diagnosis, in the second scenario undiagnosed agents are aware and additionally changed their contact behaviour in response to infection incidence (number of diagnosed agents). The level of contact reduction is . The populations consist of agents, an S-I contact has a 55% probability of transmitting the disease, the diagnosis probability is 50% and recovery occurs on average 5 days post-infection. A. Final outbreak size for different values of infection probability for the three network types and scenarios as % of N. The colors correspond to the colors of the distributions above. Dotted lines represent the aware population, dash-dotted lines show a scenario without diagnosis as a control. B. Mean number of diagnoses per day for each network and population type. C. Timeline depicting the mean degree of infected agents for each network and population type over the simulation course D. Distribution of final outbreak sizes as percent of the total population after 100 simulations for each network and scenario. E. Mean node degree over time per network and population type.

https://doi.org/10.1371/journal.pcsy.0000049.g004

We study two different scenarios per network: (i) a ‘naive’ population and (ii) an ‘aware’ population. In the scenario with the naive population, agents only change their contact behavior upon diagnosis. In contrast, the aware population consists of susceptible agents who can spontaneously reduce their contacts and mimic a diagnosed agent. The aware population has access to information about the number of diagnosed agents, D(t). We use the rates and from Eq 1 and set c = 10. The contact reduction rate for diagnosed agents is set to . We simulate 100 trajectories per network and population type.

The final outbreak size is influenced by the variance in node degrees (Fig 4A). Networks characterized by short-tailed degree distributions lead to outbreaks of similar sizes. In contrast, the long-tailed distribution result in larger outbreaks at lower infection probabilities, but the maximum outbreak size at high infection probabilities is smaller compared to the other network types. agents with numerous contacts become infected during the early stages of the outbreak and, after recovery, leave behind a sparsely connected network where the infection cannot spread effectively [62].

The epidemic curve, defined as the number of new diagnosed cases per day, is influenced by the variance in node degrees across the network (Fig 4B): In the exponential and scale-free network, the disease initially spreads rapidly as a small number of high-degree nodes become infected. Following this phase, the outbreak shifts from spreading among densely connected individuals to those with fewer connections. This transition eventually drives the epidemic below the reproductive threshold R0, which is dependent on the number of susceptible-infected (S-I) contacts (Fig 4C). In contrast, the disease spreads more slowly in the Poisson and uniform networks, as these lack many high-degree nodes or superspreaders. However, the final outbreak size is larger in these networks (Fig 4D), as the proportion of low-degree agents (or dead ends) is smaller.

For the ‘aware’ populations, the impact of spontaneous contact reduction in response to infection incidence is more pronounced in networks with slower disease spread (Fig 4E). Again, in the exponential network, the outbreak rapidly infects most agents who can transmit the disease. Meanwhile, in the low-variance networks (uniform and Poisson), contact reduction in response to incidence is more effective, decreasing the average degree of infected agents. As a result, the final outbreak sizes become comparable across these three network types (Fig 4D), with the largest reduction in cases observed in the Poisson network. In this network, the reduction in mean degree over time is primarily driven by the awareness mechanism (Fig 4E). In contrast, the scale-free network is mainly affected by the early diagnosis of high-contact agents at the onset of the outbreak, with the contact reduction due to awareness contributing only marginally to the overall connectedness of the network.

Population-wide simultaneous behaviour reduction

Lastly, we use HAS to study population-wide outbreak containment strategy within an SIDRS model. The size of the system is with initially infected agents. In this example, we set the diagnosis, infection and recovery rates to be homogeneous, given as , and , respectively. Rates are given per day which means that all agents are expected to test once every twenty days for infection and infected agents remain infectious for an average of ten days to mimic COVID-like dynamics [63]. Contacts are exponentially distributed with parameter 4, shifted by 1 to remove zero contact agents, yielding an average of 5 contacts per day. Recovered agents are becoming susceptible again, on average after three months [63]. The model follows SIS-type dynamics [64]: after exponential growth the epidemic eventually reaches an equilibrium and becomes endemic. In our SIDRS model, we evaluate a population-wide outbreak containment strategy that depends on the ten-day incidence rate. If this rate reaches a critical value all agents must reduce their contacts to the bare minimum, i.e. 1% of the initial value (). This measure is lifted once the ten-days incidence rate drops below a second critical value . This strategy was, for example, used in many European countries from 2020 onwards to regulate opening and closing of public places during the COVID pandemic.

We evaluated pairs of (, ) in a discrete grit to identify parametrizations for these three limit cases (Fig 5A). Both and are given as percentage of the population, with , , and . The discrete grid is constructed with increments of 0.05 for each parameter. We run 100 simulation for each parameter pair (, ). There are three limit cases based on the choices of and (Fig 5A): if is very low, the pathogen will eventually die out (Fig 5B). If is higher than the endemic equilibrium, the system may reach the endemic point (Fig 5C). If the endemic point is not contained within the interval [, ), the outbreak state becomes periodic (Fig 5D). Considering the societal impact of contact reduction, a periodic state could be seen as the least favorable outcome, as it results in numerous cases and frequent behavior adjustments. Depending on the severity of this hypothetical disease, policymakers should consider either implementing a single, extended lockdown to ensure thorough eradication by not lifting restrictions prematurely, or enacting a brief lockdown to flatten the curve and prevent simultaneous infections, while reopening quickly enough to allow the outbreak to reach an endemic state.

thumbnail
Fig 5. Limit cases for population-wide containment strategy.

The system contains agents. The spreading process is SIDRS and diagnosis, infection and recovery rates are given as , and , respectively. Recovered agents are becoming susceptible again on average after three months. Contacts are exponentially distributed with parameter 4, shifted by 1 to remove zero contact agents. The containment measure is activated when the ten-day incidence rate exceeds a certain threshold and deactivated when it falls below another threshold. Contacts are reduced with factor when the measure is active. Different combinations of these thresholds result in three distinct limit cases. A. Values of (, ) and resulting limit case that predominantly occurs with the parameter set up. The dotted lines denote regions where the limit cases cannot be clearly distinguished. B. Representative trajectory of a pathogen extinction outcome, C. Representative trajectory of periodic alternation between the thresholds, or D. realization of endemic equilibrium. The number of diagnosed is shown in blue, and the total cases are shown in red. Shaded areas indicate when the containment measure is active.

https://doi.org/10.1371/journal.pcsy.0000049.g005

Discussion

We have introduced the high acceptance sampling (HAS) method for simulating stochastic processes on adaptive networks. The method can be applied to simulate a number of different agent-based models, whose transitions can be separated into ‘contact events’, ’contact-dependent transitions’ and ‘spontaneous transitions’. The core idea of the algorithm hereby is to consider the impact of the underlying contact dynamics on the ’contact-dependent transitions’, without having to simulate the contact dynamics explicitly. Consequently, the performance of HAS is unaffected by the time scale at which contact dynamics occur, unlike SSA which becomes infeasible for rapid contact dynamics (Fig 3B). In cases with high edge existence probabilities () the computational efficacy of HAS even increases as the rejection probability for ‘contact-dependent transitions’ tends to zero. As the probability of ’contact-dependent transitions’ nears 1 (the infection probability over a temporal edge in our examples), the computational effort for both SSA and HAS converge (Fig 3C). Notably, these edge cases are determined completely by the underlying contact dynamics, and hence simpler models that only consider contact dynamics would suffice.

In summary, while HAS is exact, the algorithm achieves significant speed improvements compared to other exact methods. Previously, exact (SSA) simulations of realistic systems with around 100,000 agents have been impractical. In realistic scenarios, HAS is up to 1,000 times faster than SSA (Fig 3A) and therefore enables the exact simulation of large ABMs. Such speed enhancements are crucial because sampling numerous trajectories is necessary to study the underlying stochastic process and to obtain small confidence intervals, ensuring the reliability and accuracy of the simulation results. Additionally, parameter selection often requires performing numerous simulations across a potentially high-dimensional parameter grid, which is infeasible with classic approaches such as the SSA, and unreliable with inexact methods. While inexact methods can help reduce this overhead, they often introduce errors [51]. In many applications, the core interest is on quantifying the influence of certain parameters on the infection process. If the simulation method has large errors, it becomes difficult to assess whether changes in the simulation result are due to parameter changes or numerical errors [52]. In particular for adaptive processes, inexact methods may produce incorrect statistics on the spreading process [53].

HAS is particularly suited to study the impact of behaviour change on contagion spread. While the COVID-19 pandemic and Mpox outbreaks have highlighted how behavioural change can influence the spread of pathogens across different contact networks [6, 6569], traditional epidemiological modelling does typically not include socio-behavioural aspects. We showcased potential applications of this model through two examples with different containment strategies: one where a portion of the population independently reduces behavior in anticipation of infection (Fig 4), and another where the entire population collectively reduces behavior for a period (Fig 5). Our simulations highlighted that contact reduction in anticipation of infection is most effective in networks with relatively homogeneous contact rates (Fig 4D). In contrast, the effect is negligible in scale-free networks, as highly connected individuals are most vulnerable to infection (Fig 4C). Furthermore, once they recover, network connectivity is reduced among susceptible individuals [62]. In real-world epidemics, such as the mpox 2022 outbreak, the rapid decline in cases was explained by frailty in heavy-tailed contact networks in some studies [70], while others found that contact reductions played a critical role [6, 71, 72]. Our examples indicate that epidemic outcomes may be influenced by the network structure: in networks with a short-tailed contact distribution, transient behavior changes may lead to a decline in cases; whereas in scale-free networks, the decline in cases occurs regardless of behavior changes, which may add interpretation to the putatively contradicting findings regarding the decline of mpox cases in 2022.

In our model, diagnosed agents reduce their contacts, resulting in fewer opportunities for them to transmit the disease compared to opportunities for them to be infected. Depending on the degree of contact reduction, a diagnosed high-contact agent could be less likely to transmit the disease than an undiagnosed low-contact agent. This could lead to situations where agents at high risk of contracting the disease from others are not necessarily the ones most likely to transmit it to others. The effects on spreading dynamics in these cases have already been studied on static networks, where the in-degrees of agents, representing potential sources of infection, may exceed their out-degrees, or vice versa [73].

Given that HAS is based on acceptance–rejection sampling, it is well-suited to handle non-constant rates. For instance, time-dependent contact rates can be implemented with no additional computational overhead (see S1 Text), allowing for variations such as circadian rhythms [7476] or time dependent infection rates [77] such as seasonality [78]. In addition, non-constant spread rates can be implemented to account for factors such as pathogen evolution and variations in transmissibility [79]. If the waiting time distributions are different from exponential, as is often the case where infectious periods lack long tails [80], the process becomes non-Markovian, though acceptance-rejection sampling remains applicable. A straightforward adjustment is introducing multiple infectious compartments such that the infectious period is Gamma-distributed [5]. Additionally, contact processes typically do not exhibit memoryless properties. To manage this, the function can be adjusted: it might be set to zero after a contact is established or artificially increased to alter the likelihood of future interactions. In any case, sampling the last leaped rejection step in HAS requires knowledge about the waiting time distribution. When this distribution is given in closed form, HAS can be applied to non-Markovian processes as well.

Implementation and code availability

A python implementation of HAS can be found under https://github.com/KleistLab/HAS. The main calculations are performed in C, but the method can be called via python [81].

Supporting information

S1 Fig. Degree distributions for the four networks used in Fig 4.

While the mean degree remains consistent across all setups, the degree variance differs. The Poisson distribution was created by sampling from a Poisson distribution with an intensity of 10. For the uniform distribution, points were uniformly sampled from the interval [1, 19]. The exponential distribution was generated by sampling from an exponential distribution with a parameter of 1/9 and shifting each value by 1 to exclude zero contacts. The scale-free distribution was obtained by sampling from a discrete one-parameter Weibull distribution with a shape parameter of 0.296.

https://doi.org/10.1371/journal.pcsy.0000049.s002

(PDF)

Acknowledgments

The authors would like to thank the HPC Service of FUB-IT, Freie Universität Berlin, for computing time [82].

References

  1. 1. Keeling M, Rohani P. Modeling infectious diseases in humans and animals. Princeton University Press. 2011.
  2. 2. Diekmann O, Heesterbeek J. Mathematical epidemiology of infectious diseases: model building, analysis and interpretation. Wiley. 2000.
  3. 3. Kermack WO, McKendrick AG. A contribution to the mathematical theory of epidemics. Proc R Soc Lond A. 1927;115(772):700–21.
  4. 4. Kerr CC, Stuart RM, Mistry D, Abeysuriya RG, Rosenfeld K, Hart GR, et al. Covasim: an agent-based model of COVID-19 dynamics and interventions. PLoS Comput Biol. 2021;17(7):e1009149. pmid:34310589
  5. 5. van der Toorn W, Oh D-Y, Bourquain D, Michel J, Krause E, Nitsche A, et al. An intra-host SARS-CoV-2 dynamics model to assess testing and quarantine strategies for incoming travelers, contact management, and de-isolation. Patterns (N Y). 2021;2(6):100262. pmid:33899034
  6. 6. Guzzetta G, Marziano V, Mammone A, Siddu A, Ferraro F, Caraglia A, et al. The decline of the 2022 Italian mpox epidemic: role of behavior changes and control strategies. Nat Commun. 2024;15(1):2283. pmid:38480715
  7. 7. May RM. Uses and abuses of mathematics in biology. Science. 2004;303(5659):790–3. pmid:14764866
  8. 8. Keeling MJ, House T, Cooper AJ, Pellis L. Systematic approximations to susceptible-infectious-susceptible dynamics on networks. PLoS Comput Biol. 2016;12(12):e1005296. pmid:27997542
  9. 9. Scarpino SV, Allard A, Hébert-Dufresne L. The effect of a prudent adaptive behaviour on disease transmission. Nature Phys. 2016;12(11):1042–6.
  10. 10. Bedson J, Skrip LA, Pedi D, Abramowitz S, Carter S, Jalloh MF, et al. A review and agenda for integrated disease models including social and behavioural factors. Nat Hum Behav. 2021;5(7):834–46. pmid:34183799
  11. 11. Perez L, Dragicevic S. An agent-based approach for modeling dynamics of contagious disease spread. Int J Health Geogr. 2009;8:50. pmid:19656403
  12. 12. Bruch E, Atwell J. Agent-based models in empirical social research. Sociol Methods Res. 2015;44(2):186–221. pmid:25983351
  13. 13. Hunter E, Mac Namee B, Kelleher J. An open-data-driven agent-based model to simulate infectious disease outbreaks. PLoS One. 2018;13(12):e0208775. pmid:30566424
  14. 14. Hoertel N, Blachier M, Blanco C, Olfson M, Massetti M, Rico MS, et al. A stochastic agent-based model of the SARS-CoV-2 epidemic in France. Nat Med. 2020;26(9):1417–21. pmid:32665655
  15. 15. Bissett KR, Cadena J, Khan M, Kuhlman CJ. Agent-based computational epidemiological modeling. J Indian Inst Sci. 2021:1–25.
  16. 16. Gross T, Sayama H. Adaptive networks. Springer. 2009.
  17. 17. Barrat A, Barthelemy M, Vespignani A. Dynamical processes on complex networks. Cambridge University Press. 2008.
  18. 18. Kiss IZ, Miller JC, Simon PL. Mathematics of epidemics on networks. Cham: Springer. 2017.
  19. 19. Silverman E, Gostoli U, Picascia S, Almagor J, McCann M, Shaw R, et al. Situating agent-based modelling in population health research. Emerg Themes Epidemiol. 2021;18(1):10. pmid:34330302
  20. 20. Brauer F. Mathematical epidemiology: past, present, and future. Infect Dis Model. 2017;2(2):113–27. pmid:29928732
  21. 21. Morone F, Makse HA. Influence maximization in complex networks through optimal percolation. Nature. 2015;524(7563):65–8. pmid:26131931
  22. 22. Osat S, Faqeeh A, Radicchi F. Optimal percolation on multiplex networks. Nat Commun. 2017;8(1):1540. pmid:29147014
  23. 23. Holme P, Saramäki J. Temporal networks. Phys Rep. 2012;519(3):97–125.
  24. 24. Council N. Dynamic social network modeling and analysis: workshop summary and papers. The National Academies Press. 2003.
  25. 25. Kostakos V. Temporal graphs. Phys A: Statist Mech Appl. 2009;388(6):1007–23.
  26. 26. Perra N, Gonçalves B, Pastor-Satorras R, Vespignani A. Activity driven modeling of time varying networks. Sci Rep. 2012;2:469. pmid:22741058
  27. 27. Butts CT. 4. A relational event framework for social action. Sociol Methodol. 2008;38(1):155–200.
  28. 28. Panisson A, Barrat A, Cattuto C, Van den Broeck W, Ruffo G, Schifanella R. On the dynamics of human proximity for data diffusion in ad-hoc networks. Ad Hoc Networks. 2012;10(8):1532–43.
  29. 29. Moody J. The importance of relationship timing for diffusion. Social Forces. 2002;81(1):25–56.
  30. 30. Morris M, Kretzschmar M. Concurrent partnerships and the spread of HIV. AIDS. 1997;11(5):641–8. pmid:9108946
  31. 31. Basu P, Guha S, Swami A, Towsley D. Percolation phenomena in networks under random dynamics. In: 2012 Fourth International Conference on Communication Systems and Networks (COMSNETS 2012). IEEE. 2012. p 1–10. https://doi.org/10.1109/comsnets.2012.6151313
  32. 32. Doob JL. Topics in the theory of Markoff chains. Trans Amer Math Soc. 1942;52(1):37–64.
  33. 33. Kendall DG. An artificial realization of a simple “Birth-and-Death” process. J Roy Statist Soc Ser B: Statist Methodol. 1950;12(1):116–9.
  34. 34. Gillespie DT. A general method for numerically simulating the stochastic time evolution of coupled chemical reactions. J Comput Phys. 1976;22(4):403–34.
  35. 35. Gillespie DT. Exact stochastic simulation of coupled chemical reactions. J Phys Chem. 1977;81(25):2340–61.
  36. 36. Vestergaard CL, Génois M. Temporal Gillespie algorithm: fast simulation of contagion processes on time-varying networks. PLoS Comput Biol. 2015;11(10):e1004579. pmid:26517860
  37. 37. Zschaler G, Gross T. Largenet2: an object-oriented programming library for simulating large adaptive networks. arXiv preprint 2012. https://arxiv.org/abs/1207.3914
  38. 38. Meyers L. Contact network epidemiology: bond percolation applied to infectious disease prediction and control. Bull Amer Math Soc. 2006;44(1):63–86.
  39. 39. Masuda N, Vestergaard CL. Gillespie algorithms for stochastic multiagent dynamics in populations and networks. Cambridge University Press. 2022.
  40. 40. Holme P. Fast and principled simulations of the SIR model on temporal networks. PLoS One. 2021;16(2):e0246961. pmid:33577564
  41. 41. Masuda N, Rocha LEC. A Gillespie algorithm for non-markovian stochastic processes. SIAM Rev. 2018;60(1):95–115.
  42. 42. Boguñá M, Lafuerza LF, Toral R, Serrano MÁ. Simulating non-Markovian stochastic processes. Phys Rev E Stat Nonlin Soft Matter Phys. 2014;90(4):042108. pmid:25375439
  43. 43. Anderson DF. A modified next reaction method for simulating chemical systems with time dependent propensities and delays. J Chem Phys. 2007;127(21):214107. pmid:18067349
  44. 44. von Kleist M, Menz S, Stocker H, Arasteh K, Schütte C, Huisinga W. HIV quasispecies dynamics during pro-active treatment switching: impact on multi-drug resistance and resistance archiving in latent reservoirs. PLoS One. 2011;6(3):e18204. pmid:21455303
  45. 45. Zhan X-X, Liu C, Sun G-Q, Zhang Z-K. Epidemic dynamics on information-driven adaptive networks. Chaos Solitons Fract. 2018;108:196–204. pmid:32288352
  46. 46. Corcoran C, Clark JM. Adaptive network modeling of social distancing interventions. J Theor Biol. 2022;546:111151. pmid:35569530
  47. 47. Marceau V, Noël PA, Hébert-Dufresne L, Allard A, Dubé LJ. Adaptive networks: coevolution of disease and topology. Phys Rev E. 2010;82(3):036116.
  48. 48. Masuda N, Holme P. Introduction to temporal network epidemiology. Springer. 2017.
  49. 49. Barrett C, Bisset K, Eubank S, Feng X, Marathe M. Episimdemics: an efficient algorithm for simulating the spread of infectious disease over large realistic social networks. In: Proceedings of the ACM/IEEE Conference on Supercomputing. IEEE. 2008. p. 1–12.
  50. 50. Jenness SM, Goodreau SM, Morris M. EpiModel: an R package for mathematical modeling of infectious disease over networks. J Stat Softw. 2018;84:8. pmid:29731699
  51. 51. Anderson DF, Ganguly A, Kurtz TG. Error analysis of tau-leap simulation methods. Ann Appl Probab. 2011;21(6):2226–62.
  52. 52. Fennell PG, Melnik S, Gleeson JP. Limitations of discrete-time approaches to continuous-time contagion dynamics. Phys Rev E. 2016;94(5–1):052125. pmid:27967171
  53. 53. Malysheva N, Wang J, von Kleist M. Stochastic Simulation Algorithm for effective spreading dynamics on Time-evolving Adaptive NetworX (SSATAN-X) (SSATAN-X). Math Model Nat Phenom. 2022;17:35.
  54. 54. Taylor M, Simon PL, Green DM, House T, Kiss IZ. From Markovian to pairwise epidemic models and the performance of moment closure approximations. J Math Biol. 2012;64(6):1021–42. pmid:21671029
  55. 55. Kiss IZ, Berthouze L, Taylor TJ, Simon PL. Modelling approaches for simple dynamic networks and applications to disease transmission models. Proc R Soc A. 2012;468(2141):1332–55.
  56. 56. St-Onge G, Young J-G, Hébert-Dufresne L, Dubé LJ. Efficient sampling of spreading processes on complex networks using a composition and rejection algorithm. Comput Phys Commun. 2019;240:30–7. pmid:31708586
  57. 57. Whittles LK, White PJ, Didelot X. A dynamic power-law sexual network model of gonorrhoea outbreaks. PLoS Comput Biol. 2019;15(3):e1006748. pmid:30849080
  58. 58. Prochazka M, Vinti P, Hoxha A, Seale A, Mozalevskis A, Lewis R, et al. Temporary adaptations to sexual behaviour during the mpox outbreak in 23 countries in Europe and the Americas: findings from a retrospective cross-sectional online survey. Lancet Infect Dis. 2024;24(12):1309–18. pmid:39305907
  59. 59. Anderson DF, Higham DJ. Multilevel Monte Carlo for Continuous Time Markov Chains, with Applications in Biochemical Kinetics. Multiscale Model Simul. 2012;10(1):146–79.
  60. 60. Asmussen S, Glynn P. Stochastic simulation: algorithms and analysis. Springer. 2007.
  61. 61. Gubela N, Kim Hy, Lunchenkov N, Stern D, Michel J, Marcus U, et al. Transient behavior changes and depletion of susceptibles in high contact groups led to case decline during 2022 mpox outbreak in MSM in Berlin. Research Square [Preprint]. 2025 [cited 2025 Apr 23]. Available from: https://doiorg/1021203/rs3rs-6254021/v1, 2025.
  62. 62. Ferrari MJ, Bansal S, Meyers LA, Bjørnstad ON. Network frailty and the geometry of herd immunity. Proc Biol Sci. 2006;273(1602):2743–8. pmid:17015324
  63. 63. Raharinirina NA, Gubela N, Börnigen D, Smith MR, Oh D-Y, Budt M, et al. SARS-CoV-2 evolution on a dynamic immune landscape. Nature. 2025;639(8053):196–204. pmid:39880955
  64. 64. Barthélemy M, Barrat A, Pastor-Satorras R, Vespignani A. Dynamical patterns of epidemic outbreaks in complex heterogeneous networks. J Theor Biol. 2005;235(2):275–88. pmid:15862595
  65. 65. Krug C, Tarantola A, Chazelle E, Fougère E, Velter A, Guinard A, et al. Mpox outbreak in France: epidemiological characteristics and sexual behaviour of cases aged 15 years or older, 2022. Euro Surveill. 2023;28(50):2200923. pmid:38099346
  66. 66. Clay PA, Asher JM, Carnes N, Copen CE, Delaney KP, Payne DC, et al. Modelling the impact of vaccination and sexual behaviour adaptations on mpox cases in the USA during the 2022 outbreak. Sex Transm Infect. 2024;100(2):70–6. pmid:38050171
  67. 67. Aleta A, Martín-Corral D, Pastore Y Piontti A, Ajelli M, Litvinova M, Chinazzi M, et al. Modelling the impact of testing, contact tracing and household quarantine on second waves of COVID-19. Nat Hum Behav. 2020;4(9):964–71. pmid:32759985
  68. 68. Prabakaran R, Jemimah S, Rawat P, Sharma D, Gromiha MM. A novel hybrid SEIQR model incorporating the effect of quarantine and lockdown regulations for COVID-19. Sci Rep. 2021;11(1):24073. pmid:34912038
  69. 69. Auranen K, Shubin M, Erra E, Isosomppi S, Kontto J, Leino T, et al. Efficacy and effectiveness of case isolation and quarantine during a growing phase of the COVID-19 epidemic in Finland. Sci Rep. 2023;13(1):298. pmid:36609431
  70. 70. Endo A, Murayama H, Abbott S, Ratnayake R, Pearson CAB, Edmunds WJ, et al. Heavy-tailed sexual contact networks and monkeypox epidemiology in the global outbreak, 2022. Science. 2022;378(6615):90–4. pmid:36137054
  71. 71. Brand SPC, Cavallaro M, Cumming F, Turner C, Florence I, Blomquist P, et al. The role of vaccination and public awareness in forecasts of Mpox incidence in the United Kingdom. Nat Commun. 2023;14(1):4100. pmid:37433797
  72. 72. Zhang X-S, Mandal S, Mohammed H, Turner C, Florence I, Walker J, et al. Transmission dynamics and effect of control measures on the 2022 outbreak of mpox among gay, bisexual, and other men who have sex with men in England: a mathematical modelling study. Lancet Infect Dis. 2024;24(1):65–74. pmid:37708908
  73. 73. Allard A, Moore C, Scarpino SV, Althouse BM, Hébert-Dufresne L. The role of directionality, heterogeneity, and correlations in epidemic risk and spread. SIAM Rev. 2023;65(2):471–92.
  74. 74. Du Z, Holme P. Coupling the circadian rhythms of population movement and the immune system in infectious disease modeling. PLoS One. 2020;15(6):e0234619. pmid:32544167
  75. 75. Rijo-Ferreira F, Takahashi JS. Circadian rhythms in infectious diseases and symbiosis. Semin Cell Dev Biol. 2022;126:37–44. pmid:34625370
  76. 76. Setianto S, Hidayat D. Modeling the time-dependent transmission rate using gaussian pulses for analyzing the COVID-19 outbreaks in the world. Sci Rep. 2023;13(1):4466. pmid:36934167
  77. 77. Yuan X, Yao Y, Li X, Feng M. Impact of time-dependent infection rate and self-isolation awareness on networked epidemic propagation. Nonlin Dyn. 2024;112(17):15653–69.
  78. 78. Ponciano JM, Capistrán MA. First principles modeling of nonlinear incidence rates in seasonal epidemics. PLoS Comput Biol. 2011;7(2):e1001079. pmid:21379320
  79. 79. Zhang X, Ruan Z, Zheng M, Zhou J, Boccaletti S, Barzel B. Epidemic spreading under mutually independent intra-and inter-host pathogen evolution. Nat Commun. 2022;13(1):6218.
  80. 80. Lloyd AL. Realistic distributions of infectious periods in epidemic models: changing patterns of persistence and dynamics. Theor Popul Biol. 2001;60(1):59–71. pmid:11589638
  81. 81. Behnel S, Bradshaw R, Citro C, Dalcin L, Seljebotn DS, Smith K. Cython: the best of both worlds. Comput Sci Eng. 2011;13(2):31–9.
  82. 82. Bennett L, Melchers B, Proppe B. Curta: a general-purpose high-performance computer at ZEDAT, Freie Universität Berlin. 2020. https://doi.org/10.17169/refubium-26754