Nemo  2.3.46

Nemo – A stochastic, individual-base, genetically explicit simulation platform

version 2.3.46 - released 09 February 2017

© 2006-2017 Frédéric Guillaume

The latest version can always be found at the download site.

What's new in version 2.3?

  • A recombination map has been added for all multi-locus traits. The map positions (chromosomal) for neutral markers (e.g. SNPs) and loci under selection (QTLs, deleterious mutations, DMIs) can now be specified explicitly, or set at random. The map can hold an unlimited number of loci of different types jointly, at any recombination scale (cM or lower). The effects of linkage can thus be finely explored.

  • A new trait coding for (Bateson-)Dobzhansky-Muller incompatibility loci. Multiple haploid or diploid pairs of incompatible loci can be spread throughout the genome and affect individual fitness.

  • Possibility to simulate genetic and phenotypic data on a existing pedigree.

  • Multi-type selection: Individual fitness can be jointly determined by different types of loci under selectinon, such as QTLs coding for quantitative traits under spatially variable selection, universally deleterious mutations, and Dobzhansky-Muller incompatibility loci.

  • An unlimited number of quantitative traits under different forms of selection can be modelled, based on universally pleiotropic loci with several bi- or multi-allelic models.

  • The selection pattern affecting quantitative traits can vary spatially and temporally among populations, modelling shifts of environmental conditions through time.

  • The dispersal matrix describing the movement of individuals among sub- population can be replaced by a connectivity matrix and a reduced dispersal matrix describing migration only among the connected sub- populations. This offers a substantial gain in computing time and system memory when simulating very large grids.

  • Input parameters' arguments may be specified in separate files. This is particularly convenient when specifying large matrices.

  • Many adjustments have been made for refined control of the input of parameters and data output. See updates in the manual.

  • and more... Check the CHANGELOG for information about code changes and fixes.

What's in Nemo?

Nemo is a forward-time, individual-based, genetically explicit, and stochastic simulation program designed to study the evolution of life history/phenotypic traits and population genetics in a flexible (meta-)population framework.

Nemo implements many different life cycle events and evolvable traits with a variety of genetic architectures (see below). Species interaction between a parasite and its host can also be modeled (i.e., Cytoplasmic-Incompatibility inducing endosymbiont: Wolbachia). All this is framed within a flexible metapopulation model that allows for patch-specific carrying capacities, dispersal rates, stochastic extinction/harvesting rates, and demographic stochasticity. Populations can be dynamically modified during a simulation, allowing for population bottlenecks, patch fusion/fisson, population expansion, etc. Spatially and temporally heterogenous selection on quantitative traits can also be modelled with similar variation of local phenotypic optima.

Nemo's interface is a simple text file containing the simulation parameters and their values. Each parameter can have several argument values, which allows many simulations to be run from a single parameter file. Parameters can also be set with temporal values that will automatically modify the simulation settings during a run.

Main Features:

Evolvable Traits

  • neutral markers (microsatellites, SNPs)
  • deleterious mutations (with locus-specific fixed or random effects, and dominance)
  • quantitative traits (with pleiotropic quantitative loci, additive continuous or bi-allelic effects)
  • Dobzhansky-Muller incompatibility loci
  • dispersal (male- and female-specific expression)
  • Wolbachia (maternally-inherited Cytoplasmic-Incompatibility inducing endosymbiont)

Life Cycle Events

  • breeding (with promiscuity, polygyny, monogamy, selfing, and cloning mating systems)
  • disperse (migrant pool/propagule pool island model, 1D & 2D lattice models, etc.)
  • aging (with ceiling patch regulation)
  • viability selection (based on deleterious mutations or stabilizing selection on quantitative traits)
  • extinction/harvesting
  • patch fusion/fission
  • crossing design (full-sib/half-sib designs)
  • and more...

More refined description of all the features available is provided in the user's manual.

With the availability of a geneitc map, Nemo can be used to study the genetics of adaption, model scenarios of adaptation with gene flow, of population expansion into a new environment, adaptation to fluctuating environments, or the joint evolution of dispersal and deleterious mutations in structured populations, among other things. The number of populations, individuals per population or loci to simulate are only restricted by computer physical capacities. Large populations of 10e5-10e6 individuals carrying 10e2-10e3 loci necessitate about 3 to 5GB of RAM on a desktop computer. Nemo is highly optimized to run in batch mode and a parallel computing version is part of the release thus making it a very flexible and powerful simulation tool.


  • The code source, executables, and documentation are available at the download page, as is the user's manual.
  • You can subscribe to the mailing list to get news on updates and post your requests, comments, and bug reports.
  • Nemo is released under the GNU Public License version 2


Please cite Nemo as: Guillaume, F., and J. Rougemont. 2006. Nemo: an evolutionary and population genetics programming framework. Bioinformatics 22:2556-2557.

PDF copies can be obtained upon request to the first author.

Here is a list of published works using Nemo as a research tool.

Guillaume, F., and N. Perrin 2006 Joint evolution of dispersal and inbreeding load. Genetics 173:497–509.
Guillaume, F., and M. C. Whitlock 2007 Effects of migration on the genetic covariance matrix. Evolution 61:2398–2409.
Reuter, M., Lehmann, L., and F. Guillaume 2008 The spread of incompatibility-inducing parasites in sub-divided host populations. BMC Evolutionary Biology 8:134.
Jaquiéry, J., Guillaume, F., and N. Perrin 2009 Predicting the deleterious effects of mutation load in fragmented populations. Conservation Biology 23:207–218.
Guillaume, F., and N. Perrin 2009 Inbreeding Load, Bet Hedging, and the Evolution of Sex-Biased Dispersal. The American Naturalist 173:536-541.
Whitlock, C., and F. Guillaume 2009 Testing for Spatially Divergent Selection: Comparing QST to FST. Genetics 183:1055-1063.
Yeaman, S., and F. Guillaume 2009 Predicting adaptation under migration load: the role of genetic skew. Evolution 63:2926-2938.
Guillaume, F. 2011 Migration-induced phenotypic divergence: the migration-selection balance of correlated traits. Evolution 65:1723-1738.
Yeaman, S., and M. C. Whitlock 2011 The genetic architecture of adaptation under migration-selection balance Evolution 65:1897-1911.
Broquet, T., F. Viard, and J. M. Yearsley 2013 Genetic Drift and Collective Dispersal Can Result in Chaotic Genetic Patchiness. Evolution 67:1660-1675.
Perrier, C., J.-L. Baglinière, and G. Evanno 2013 Understanding admixture patterns in supplemented populations: a case study combining molecular analyses and temporally explicit simulations in Atlantic salmon. Evolutionary Applications 6:218–230
Yeaman, S. 2013 Genomic rearrangements and the evolution of clusters of locally adaptive loci. PNAS 110:E1743-E1751.
Fernandez-Cebrian, R., R. M. Araguas, N. Sanz, and J. L. Garcia-Marin 2014 Genetic risks of supplementing trout populations with native stocks: a simulation case study from current Pyrenean populations. Can. J. Fish. Aquat. Sci. 71:1243-1255.
Hoban, S., J. A. Arntzen, M. W. Bruford, J. A. Godoy, A. Rus Hoelzel, G. Segelbacher, C. Vila, and G. Bertorelle 2014 Comparative evaluation of potential indicators and temporal sampling protocols for monitoring genetic erosion. Evolutionary Applications 7:984-998.
Debarre, F., S. Yeaman, and F. Guillaume 2015 Evolution of quantitative traits under a migration-selection balance: when does skew matter?. Am. Nat. 186:S37-S47.
Gilbert, K. J., and M. C. Whitlock 2015 QST–FST comparisons with unbalanced half-sib designs. Molecular Ecology Resources 15:262-267.
Gilbert, K. J., and M. C. Whitlock 2015 Evaluating methods for estimating local effective population size with and without migration. Evolution 69:2154-2166.
Yeaman, S. 2015 Local adaptation by alleles of small effect. Am. Nat. 186:S74-S89.
Gompert, Z., and C. A. Buerkle 2016 What, if anything, are hybrids: enduring truths and challenges associated with population structure and gene flow. Evolutionary Applications 9:909-923.
Gilbert, K. J., N. P. Sharp, A. L. Angert, G. L. Conte, J. A. Draghi, F. Guillaume, A. L. Hargreaves, R. Matthey-Doret, and M. C. Whitlock 2017 Local adaptation interacts with expansion load during range expansion: maladaptation reduces expansion load. Am. Nat.:10.1086/690673
Schmidt, T. L., I. Filipovic, A. A. Hoffmann, and G. Rasic 2017 Fine-scale landscape genomics of Aedes aegypti reveals loss of Wolbachia transinfection, dispersal barrier and potential for occasional long distance movement. bioRxiv:103598.

Note: send us your references and we'll add them here!


Nemo is currently developed and maintained by Fred Guillaume.

The following persons have contributed to its development at some point:
Jacques Rougemont (MPI version)
Samuel Neuenschwander
Alistair Blachford
Sam Yeaman
Kimberly Gilbert

Nemo also benefited from development done on EasyPop by François Balloux, and from some improvements brought to quantiNEMO, an off-shoot based on earlier work done in collaboration with Samuel Neuenschwander and Jérôme Goudet.

Many thanks to all those great people!

Development Guidelines

Nemo's framework has been designed as a programing tool to easily implement new components into the simulation framework. Interfaces are provided to derive new evolvable traits, new life cycle events and their accompanying data handlers. Besides that, the implementer should not worry (or not too much) about how its new components are handled within the population and simulation frameworks. The population framework is designed to give access to the individuals within the different age classes and sub-populations present in the model to the different components, in particular the life cycle events.

Where to start

How to add a trait?

How to add a LCE?

Adding the stat and file handlers.

Building and linking your project with Nemo

Generated for Nemo v2.3.0 by  doxygen 1.8.8 --
Catalogued on GSR