Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

311 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

install with conda install with bioconda Anaconda-Server Badge Anaconda-Server Badge

Nemo

A forward-time, individual-based, genetically explicit simulation program for evolutionary biology and ecology

Nemo is designed to study the evolution of quantitative traits and population genetics in a metapopulation framework. It provides a C++ programming environment and a ready-to-use command-line tool for simulating genetic diversity, life histories, and phenotypic trait evolution.

Version 2.4.2 — [03 Aug 2026]

Legacy website for package download and Doxygen code documentation: nemo2.sourceforge.io

NEW Preprint on BioRxiv

Nemo2.4: fast and accurate quantitative genetics forward-time simulations. Champak Beeravolu Reddy,Jobran Chebib, Olivier Cotto, Max Schmid, Frédéric Guillaume. 02-07-2026 doi:10.64898/2026.07.02.736177


Features

Genetic elements on a shared genetic map

  • Neutral markers — microsatellites, SNPs (byte or bitstring encoding)
  • Deleterious mutations — locus-specific fitness and dominance effects
  • Quantitative traits — pleiotropic QTL with locus-specific additive and continuous or di-allelic effects, variable pleiotropy, epistasis (multi-linear model), dominance
  • Bateson-Dobzhansky-Muller incompatibilities — epistatic interactions between pairs of loci with explicit fitness tables

The genetic map can have multiple chromosomes, variable recombination rate and locus density.

Additional evolvable traits

  • Dispersal rate — sex-specific expression on two sets of loci
  • Wolbachia — maternally inherited cytoplasmic-incompatibility endosymbiont

Life cycle events (composable, in any order)

Event Description
Breeding Promiscuity, polygyny, monogamy, selfing, cloning, hermaphroditism; Wright-Fisher model
Dispersal Island model, 1D & 2D lattices, propagule pool, custom matrices for spatial-explicit models; forward & backward migration (zygotic & gametic)
Selection Gaussian, quadratic, linear, disruptive, truncation; multivariate; multi-trait (dmi's, deleterious mutations, QTL); spatially & temporally variable optima
Phenotypic expression Plastic phenotypes modelled after linear reaction norms with evolving intercept and slope, liability traits with evolving thresholds
Aging With ceiling patch regulation
Extinction / harvesting Patch-specific rates, partial harvesting
Population dynamics Patch fusion/fission, population expansion, bottlenecks
Crossing designs Full-sib / half-sib cross, custom designs on existing pedigrees

Metapopulation framework

  • Patch-specific carrying capacities, dispersal rates, and selection pressures
  • Dynamic modification of populations during a simulation (temporal arguments)
  • Demographic and environmental stochasticity
  • Sparse connectivity matrices for large landscapes (1000+ patches)
  • Batch processing and MPI parallel computing

Output formats

  • Summary statistics (TSV, CSV)
  • Binary population snapshots
  • PLINK format (.ped, .fam, .map, .bin)
  • FSTAT and GENEPOP formats
  • Genotype and allele frequency files

Install with Conda (no compilation)

The quickest way to install Nemo is from the ecoevo channel, which ships a precompiled binary and pulls in the GSL for you. Packages are built for Linux (x86_64, aarch64) and macOS on Apple Silicon (arm64).

conda create -n nemo -c conda-forge -c ecoevo nemo
conda activate nemo

The executable is version-stamped, e.g. nemo2.4.2 my_simulation.ini.

Nemo is also on Bioconda:

conda create -n nemo -c conda-forge -c bioconda nemo

Both channels build the same source. The ecoevo channel is published automatically when a release is tagged, so it always has the current version; Bioconda is updated separately and can trail it by several weeks. Prefer ecoevo unless you specifically need the Bioconda build.


Quick start (build from source)

1. Install dependencies

Nemo requires the GNU Scientific Library (GSL) version 2.0 or higher.

# Ubuntu / Debian
sudo apt-get install libgsl-dev

# macOS (Homebrew)
brew install gsl

# macOS (from source, for architecture matching) — see INSTALL for details

2. Download the source

Two options:

  • download the Nemo-2.4.2-src.tar.gz package from sourceforge.net
  • download the latest version from the Downloads section either manually or with the following command:
curl -L https://bitbucket.org/ecoevo/nemo-release/get/v2.4.2.tar.gz -o Nemo-2.4.2.tar.gz

Note: the archive downloaded from the Bitbucket repo will expand into a folder with a complicated name containing the latest commit hash number. Use the following command to expand into Nemo-2.4.2:

mkdir Nemo-2.4.2 && tar xzf Nemo-2.4.2.tar.gz -C Nemo-2.4.2 --strip-components=1

3. Compile

Here, we'll assume that the downloaded package expands into a folder named Nemo-2.4.2 (e.g. when downloading from sourceforge.net).

The bin folder needs to be created before compiling the program with make.

cd Nemo-2.4.2
mkdir bin
make

Platform-specific builds:

make MAC_ARM=1     # Apple Silicon (M1/M2/M3/M4)
make MAC_x86=1     # Intel Mac
make MPI=1         # Parallel computing (requires MPI 4.0+ and SPRNG 5.0)
make DEBUG=1       # Debug build (creates nemo2.4.2D)

4. Install

make install       # copies to ~/bin/ by default

5. Run a simulation

nemo2.4.2 my_simulation.ini

Without arguments, Nemo looks for a file named Nemo2.ini in the current directory. Example configuration files are provided in the examples/ directory.


Documentation

  • User manual: available in the doc folder and at the download site
  • Code documentation: available in the Downloads section of this repo and at nemo2.sourceforge.io
  • Development guide: how to extend Nemo with new traits, life cycle events, and handlers
  • Publications: papers using Nemo as a research tool
  • INSTALL: detailed compilation and installation instructions for all platforms
  • CHANGELOG: version history and release notes

Related projects

  • Nemo-age — age- and stage-structured version of Nemo Cotto O, Schmid M, and F Guillaume (2020) Nemo-age: spatially explicit simulations of eco-evolutionary dynamics in stage-structured populations under changing environments. Methods in Ecology and Evolution. doi:10.1111/2041-210X.13460

  • nemosub — utility to submit Nemo jobs to cluster schedulers (Slurm, OAR, PBS, LSF)


Citation

Please cite Nemo as:

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


Support


Authors

Main authors: Frederic Guillaume (maintainer), Jacques Rougemont (MPI), Olivier Cotto, Jobran Chebib (variable pleiotropy), Max Schmid (phenotypic plasticity), Champak Beeravolu Reddy (epistasis)

Contributors: Samuel Neuenschwander, Alistair Blachford, Sam Yeaman, Kimberly Gilbert, Cindy Gidoin


License

Nemo is free software released under the GNU General Public License v3+.

Copyright 2006–2026 The Authors. See COPYING for details.

About

A forward-time, individual-based, genetically and spatially explicit simulation program for evolutionary biology and ecology

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages