I'm a physicist and I'm fairly new to Bioinformatics therefore somethings below may not make sense.

My purpose:

I would like to simulate genetic evolution of bacterial populations, implementing interactions among different bacterial strains on a graph.

My starting point is to generate a graph with a certain topology.

Each vertex $V_i$ should contain a population of $N_i$ individuals for which I choose a certain allelic profile from an MLST database. Population numerosity and allelic profile is assigned by random choice. $$\\\\$$

At starting time each vertex is populated with a "pure" strain of $N_i$ clones, identified with a randomly choosen allelic profile.

Dynamics assumptions

I will assume that:

  • Topology does not change with time

  • Vertex dynamic flows as a Moran process: At time $t$ , one individual is chosen randomly to reproduce and one individual is chosen to die. The same individual can be chosen to reproduce and then die. Thus, an individual has either zero, one, or two descendants. Zero and two with equal probability $p_0 = p_2 = (N_i -1 )/N_i^2$ , and one with probability $p_1 = 1 − 2 p_2$.

  • Migration from one Vertex to one another is possible for nearest neighborhood with some fixed probability depending on choosen topology. I will assume that when migration occurs $I$ new individuals enters into $V_i$ and $O$ individuals exits from $V_i$, with $I$ and $O$ depending on origin vertex numerosity. Migrants carry allelic frequencies according to population they came from. When migration occurs a new population is established: allelic profile frequencies changes according to that.

  • Migration and Moran process evolution does not happen simultaneously; This allows me to guarantee that each population performs at least one evolution.


(1) Is there something fundamental that I'm missing?

(2) Moran model ensures that the population size remains constant (apart from migration effects obviously). Is this appropriate in order to simulate dynamic in stationary growing phase or should I introduce some demographic effects?

(3) Which could be a proper "timing" for migration and evolution steps?

  • 1
    $\begingroup$ Just a thought... A key concept in population genetics is fitness of an individual/clonal group under that environment. A change in environment results in a change in the fitness and as a consequence you have a bottleneck, where individuals die when their fitness is lower than a threshold. Specialists have high fitness in one environment, but low in others, while generalists are mediocre at all. So you could choose who dies based on some fitness-threshold effect where fitness is inversely tied to say doubling time, if that is a parameter that is allowed to evolve. $\endgroup$ Commented Aug 26, 2020 at 18:30
  • $\begingroup$ I forgot to mention that my naive implementation of vertex dynamics follow a neutral model because all individuals could be picked as a parent with uniform probability distribution (this should be like an equal fitness). So do you suggest that I should implement fitness variation as an effect of migration? (e.g. incoming bacteria have lower fitness due to new environment) $\endgroup$
    – omega
    Commented Aug 26, 2020 at 19:25

1 Answer 1


I assume you are simulating a null distribution. Are you investigation recombination??

My main advice is to use population genetic terminology rather than geomometry to describe your simulation (e.g. vertex is a migration event between allopatric populations). Migration is investigated between populations investigated via $F_{ST}$. You appear to be assuming clonality, and population movement appear to follow a 'stepping stone model' (I might have misunderstand the question).

Mutation rate ... I'll have a guess at $10^5$ per site per year. Migration rate depends on the bacterial species being modeled, eg. MRSA spread in a very similiar fashion to that described in your model (along a moterway), in contrast soil bacteria don't adhere to allopatry at all (when I looked at them).

Fixing one parameter (population size) whilst investigation a second (migration) would be normal to assess the parameter space initially. Bacterial populations do undergo selective sweeps and using an appropriate growth model I would look at a standard population growth model (e.g. the one Bob May investigated in chaotic interactions within a differential equation). There are several population growth models and fixing migration whilst assessing the model would seem sensible. The parameter space in the combined model of migration, space and population size becomes complex.

Okay I get your model now. Its fine, the thing I'd be cautious about is the population density of the bacterial host because this would skew migration across the nodes of your graph. A quick literature review will demonstrate the importance, double paeroto log normal distribution and its cousin (the name escapes me .... ) are sort of key words that might flag up. Bacteria are not my active thing so I'm rusty.

  • 1
    $\begingroup$ Let me explain better: my graph G(V,E) has nodes (aka. vertex) and edges (aka. links). My dinamics is parametrized by two discrete time-variables, $t_1$ and $t_2$ . $\Delta t_1$ is the moran process typical time and $\Delta t_2$ marks each migration event. Clearly there's a relation beetwen $\Delta t_1$ and $\Delta t_2$ that I should implement. Allopatric hypothesis is plausible only at $t=t_0$ when first migration has not occurred yet. Yes, population movements follows a 'stepping stone model'. Recombination is not taken into account yet (yes it's my basis null model) $\endgroup$
    – omega
    Commented Aug 27, 2020 at 18:05
  • 1
    $\begingroup$ Okay, i see. Your model seems fine. You're looking at bacterial movement between foci under investigation, e.g. hospitals that wort of thing, this is represented by nodes on your graph. I presume you have observed data and are generating a null distribution. The one thing I'd watch ... is there seasonality in the population dynamics of the species? The other thing important is population density of the bacterial host ... of the two I would say the latter is most important. $\endgroup$
    – M__
    Commented Aug 27, 2020 at 21:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.