Messer Lab – SLiM

About SLiM

SLiM is an evolutionary simulation framework that combines a powerful engine for population genetic simulations with the capability of modeling arbitrarily complex evolutionary scenarios. Simulations are configured via the integrated Eidos scripting language that allows interactive control over practically every aspect of the simulated evolutionary scenarios. The underlying individual-based simulation engine is highly optimized to enable modeling of entire chromosomes in large populations. We also provide a graphical user interface on macOS, Linux, and Windows, for easy simulation set-up, interactive runtime control, and dynamical visualization of simulation output.

A 4–5 day SLiM Workshop is now available online.  The SLiM Workshop is also offered in person from time to time; see the SLiM Workshops subsection below for more information.


Downloads (version 4.0.1)

icon_package_small icon_zip_small icon_pdf_small icon_pdf_small icon_zip_small

macOS Installer

Source Code

SLiM Manual

Eidos Manual

Ref Sheets

For help with installation on all platforms, see chapter 2 of the SLiM manual.  The macOS Installer above will install the slim command-line tool and the SLiMgui graphical development environment. (The old macOS Cocoa-based SLiMguiLegacy app can be downloaded from SLiMguiLegacy.app.zip or built in Xcode; it is no longer supported.)  On Linux platforms there may be an installer for your platform, or you can build from sources. On Windows, there is a pacman installer, or you can build from sources; you can also run SLiM on Windows under the WSL.

The SLiM Manual includes a collection of over 100 recipes for common situations. You can download a zip archive of those recipes, if you wish; they are also directly available through SLiMgui’s File menu.  The Eidos Manual covers the details of the Eidos language, used to control SLiM via scripting. Reference sheets for both SLiM and Eidos, downloadable above, make them easy to use with minimal use of the full documentation.

Note that the source code archive provided above contains neither macOS specific code, nor the Xcode project for SLiM; it is intended for users on Linux and Windows. The complete sources including macOS files can be found on GitHub; you can get the sources for a tagged release, such as 4.0.1, or for the current development head.

We also provide a GitHub repository called SLiM-Extras with additional useful tidbits for users of SLiM, such as user-defined Eidos functions for performing some common tasks, and we welcome contributions to that repository from others.


SLiMgui

With the SLiMgui graphical modeling environment (compatible with macOS, Linux, and Windows), you can visualize your simulation as it runs and examine its parameters in real-time, allowing for much easier simulation development.

slimgui_screenshot

A screenshot of SLiMgui simulating the population dynamics of a CRISPR/Cas9 “gene drive” in a six-subpopulation island model with spatial variation in selection on the driver allele.  The Eidos scripting area is on the left, output is on the right.  A visual representation of the population structure is shown in the subwindow, and all of the individuals in the six subpopulations can be seen at top (colored according to their relative fitness).  The central black bar shows a summary of the genetic variation present in the population; rare neutral mutations are visible as short yellow bars, and the tall red bar represents the driver allele approaching fixation.


Mailing lists

There are two mailing lists. Please subscribe to either or both using the links below:

  1. slim-announce: A low-volume mailing list for announcements only.  Users may not post to this list.
  2. slim-discuss: A higher-volume mailing list for questions, comments, bug reports, and discussion among users of SLiM.

SLiM Workshops

We run 5-day SLiM workshops that are free and open to the public (with registration). These workshops were on hold for several years due to the coronavirus pandemic, but we are excited to announce a new set of in-person workshops:

  • June 16 – 20 at UNM in Albuquerque, New Mexico; this workshop is now full
  • August 28 – Sept. 1 at Harvard (Cambridge, MA)
  • April 29 – May 3 in Stockholm, Sweden, at the Centre for Palaeogenetics
  • May 13 – 17 in Copenhagen, Denmark, at the Globe Institute (University of Copenhagen)
  • May 27 – 31 in Ancona, Italy, at Marche Polytechnic University (co-sponsored by the University of Ferrara)
  • June 10 – 14 in Edinburgh, Scotland, UK, at the University of Edinburgh

If you would like to host a workshop at your institution, please contact us!

The workshop materials are now online, for people who want to do it themselves; visit the online workshop download page for more information.

An overview of the workshop content
Information on attending SLiM workshops
Downloadable solutions to workshop exercises

Past workshops:

workshop_2019_Sweden_small
The first SLiM workshop: Umeå, Sweden, August 2019.


SLiM videos

We have started making videos related to SLiM, which will be posted here.  These will probably just be on special topics; we don’t plan to record the entire SLiM workshop as a video series, for example.

A Walk Through the Gardens of SLiM (1.2 hours, 1.53 GB):   video

This is a look at how SLiM works under the hood, exploring the C++ internals behind SLiM and Eidos.  It is not for beginning users, and it will make more sense if you have a little programming experience.


News

2022 September 14: SLiM 4.0.1 is released! This is a minor release, mostly to fix a couple of bugs.  This upgrade preserves backward compatibility and reproducibility from SLiM 4.0.  It is recommended for all users already on SLiM 4. For more information, see slim-announce for the announcement and release notes.

2022 August 12: SLiM 4.0 is released! This is a major release, notably adding support for simulating multiple species including eco-evolutionary dynamics and coevolution.  This upgrade breaks both backward compatibility and reproducibility from SLiM 3.7.1 (although fixing the backward compatibility breaks is typically trivial).  It is recommended for all users for whom those breaks are not a deal-breaker. For more information, see slim-announce for the announcement and release notes.

2022 February 14: SLiM 3.7.1 is released! This is a minor bug-fix release, fixing one crash and several more minor issues.  This upgrade is recommended for all users, and preserves backward compatibility and reproducibility from SLiM 3.7. For more information, see slim-announce for the announcement and release notes.

2021 December 15: SLiM 3.7 is released! This is a major release, with tons of new stuff and several important bug fixes. It adds Windows as a supported platform.  This upgrade is recommended for all users, but breaks backward compatibility in a couple of ways for some models.  Version 3.6 should be used with caution, due to three bugs that could cause incorrect model results. For more information, see slim-announce for the announcement and release notes.

2021 March 3: SLiM 3.6 is released! This is a major release, with many new features and several important bug fixes. This upgrade is strongly recommended for all users; version 3.5 should not be used due to two bugs that could cause incorrect model results. For more information, see slim-announce for the announcement and release notes.

2020 December 8: SLiM 3.5 is released! This is a major release, with many new features and several important bug fixes. This upgrade is recommended for all users, but it breaks backward compatibility/reproducibility in several ways; read the release notes carefully. For more information, see slim-announce for the announcement and release notes.

2020 May 12: SLiM 3.4 is released! This is a major release, including the first release of QtSLiM, as well as a few other new features and fixes for a couple of bugs. This upgrade is recommended for all users. For more information, see slim-announce as usual.

2020 January 30: SLiM 3.3.2 is released! This is a minor release, with several small improvements and fixes for a couple of bugs (one significant). This upgrade is recommended for all users. For more information, see slim-announce as usual.

2020 January 13–17: We had a SLiM workshop on our home turf, at Cornell! We’ve done a couple so far (Sweden, the UK, New York City) but this was our first at Cornell. We had 28 attendees, and it went very well, including a catered lunch sponsored by 3CPG. We’ve got more workshops planned (see the previous subsection); please contact us if you’d like to host a workshop at your institution!

2019 September 28: SLiM 3.3.1 is released! This version is a minor release, mostly bug fixes (including a few rare but nasty bugs!). This upgrade is recommended for all users. For more information, see the new manuals, and the release notes in the announcement on slim-announce.

2019 May 15: SLiM 3.3 is released! This version is a major release, with big new features (nucleotide-based models, mutation() callbacks, etc.) and some big, important bug fixes. This upgrade is strongly recommended for all users. For more information, see the new manuals, and the release notes in the announcement on slim-announce.

2019 January 29: SLiM 3.2.1 is released! This version is a minor release, providing some smaller feature additions and a couple of new recipes, as well as bug fixes. For more information, see the new manuals, and the release notes in the announcement on slim-announce.

2019 January 18: In recent days we have had three (!) new papers published related to SLiM. (1) “SLiM 3: Forward genetic simulations beyond the Wright–Fisher model” describes the support for non-Wright–Fisher models and continuous space in SLiM 3 (DOI). (2) “Evolutionary modeling in SLiM 3 for beginners” walks new users through making a simple model in SLiM 3, with lots of explanations of basic concepts (DOI). (3) “Tree‐sequence recording in SLiM opens new horizons for forward‐time simulation of whole genomes” discusses the new tree-sequence recording feature in SLiM 3 in detail, with several examples of its practical application to speeding up model execution, burn-in simulation, and data analysis (DOI). We hope these papers are useful for getting up to speed on all the new stuff we’ve been working on!

2018 November 6: SLiM 3.2 is released! This version greatly improves the performance of large nonWF models, and provides numerous improvements and bug fixes. For more information, see the new manuals, and the release notes in the announcement on slim-announce.

2018 September 3: SLiM 3.1 is released! This version greatly improves the performance of spatial interactions, and provides improvements to tree-sequence recording, among other improvements and bug fixes. For more information, see the new manuals, and the release notes in the announcement on slim-announce.

2018 July 1: SLiM 3.0 is released! This is our first full version upgrade since SLiM 2.0 was released in early 2016. It adds support for non-Wright-Fisher (nonWF) models and tree-sequence recording, two features that greatly increase SLiM’s power and flexibility. Many smaller improvements have been made too. For more information, see the new manuals, and the release notes in the announcement on slim-announce.

2017 December 16: SLiM 2.6 is released! This is a major release, with lots of new stuff; see the new manuals, and the release notes in the announcement on slim-announce.

2017 October 27: SLiM 2.5 is released! This is a major release, with lots of new stuff and some important bug fixes; see the new manuals, and the release notes in the announcement on slim-announce.

2017 September 12: SLiM 2.4.2 is released (fix for a bug that could cause incorrect output from many/most models).

2017 July 26: SLiM 2.4.1 is released (fix for a bug that could cause crashes or incorrect results in multi-subpopulation simulations).

2017 July 14: SLiM 2.4 is released! This is a major release, with speed improvements for many types of models, new support for runtime profiling in SLiMgui, and many other features. See the new SLiM and Eidos manuals for current documentation. There are also release notes in the announcement on slim-announce.

2017 April 18: SLiM 2.3 is released! This is a major release, notably adding support for continuous space and spatial interactions. See the new SLiM and Eidos manuals for current documentation. There are also release notes in the announcement on slim-announce.

2017 February 22: SLiM 2.2.1 is released (new recipes, minor features and fixes).

2016 December 8: SLiM 2.2 is released! This is a major release with big performance improvements and several new features. See the new SLiM and Eidos manuals for current documentation. There are also release notes in the announcement on slim-announce.

2016 November 8: SLiM 2.1.1 is released (mostly bug fixes, some serious).

2016 October 4: Our publication on SLiM 2 is out in Molecular Biology and Evolution: DOI.

2016 September 19: SLiM 2.1 is released! This is a major release with lots of features added. See the new SLiM and Eidos manuals for current documentation. There are also release notes in the announcement on slim-announce.

2016 May 26: SLiM 2.0.4 is released (minor bug fixes).

2016 May 12: SLiM 2.0.3 is released (improvements to code completion).

2016 May 6: SLiM 2.0.2 is released (minor feature additions).

2016 April 27: SLiM 2.0.1 is released (minor bug fix and minor feature addition).

2016 April 1: SLiM 2.0 is released!  We are excited to announce SLiM 2.0, a new major release of the SLiM package.  SLiM 2.0 adds scriptability with Eidos, and interactive simulation development using the SLiMgui application.  We have put up a blog post with more details about the SLiM 2.0 release.


License and citation

SLiM is free open-source software, licensed under the GNU General Public License version 3.  If you use SLiM in your research, please cite us.

For SLiM 4, cite:

Haller, B.C., & Messer, P.W. (2023). SLiM 4: Multispecies eco-evolutionary modeling. The American Naturalist, e-article.  DOI

For SLiM 3, cite:

Haller, B.C., & Messer, P.W. (2019). SLiM 3: Forward genetic simulations beyond the Wright–Fisher model. Molecular Biology and Evolution 36(3), 632–637.  DOI

For models using tree-sequence recording, cite:

Haller, B.C., Galloway, J., Kelleher, J., Messer, P.W., & Ralph, P.L. (2019). Tree‐sequence recording in SLiM opens new horizons for forward‐time simulation of whole genomes. Molecular Ecology Resources 19(2), 552–566.  DOI

If appropriate, cite our “protocol” paper for beginning SLiM users:

Haller, B.C., & Messer, P.W. (2019). Evolutionary modeling in SLiM 3 for beginners. Molecular Biology and Evolution 36(5), 1101–1109.  DOI

For older models using SLiM 2, cite:

Haller, B.C., & Messer, P.W. (2017). SLiM 2: Flexible, interactive forward genetic simulations. Molecular Biology and Evolution 34(1), 230–240.  DOI

And for SLiM 1, cite:

Messer, P.W. (2013). SLiM: Simulating evolution with selection and linkage. Genetics 194(4), 1037–1039.  DOI


The SLiM icon

Graphics files for the SLiM icon are downloadable here. These images are: Copyright (c) 2016–2022 Philipp Messer, All Rights Reserved. Permission is hereby granted for re-use specifically for SLiM-related purposes that are respectful and supportive of the SLiM community. If you have any doubt as to this, please contact us for permission. Various sizes and formats are provided.

256×256, TIFF format: SLiM_256.tif
256×256, JPEG format: SLiM_256.jpg
1024×1024, TIFF format: SLiM_1024.tif
1024×1024, JPEG format: SLiM_1024.jpg
Vector, PDF format: SLiM_vector.pdf


Older versions

For new projects, using the current version is strongly recommended.  Old versions from SLiM 2.0 onward can be found on GitHub using the release tags.  These old versions are no longer supported.

SLiM 1.8:   documentation   source


Publications

It can be useful to see how others are using SLiM; sometimes you can even download the actual SLiM model used in a paper.  However, updating a list of all the publications that cite SLiM became too time-consuming, so now we provide links for Google Scholar searches, for papers that cite our SLiM papers.

Citations for SLiM 4 (brand spanking new!)

Citations for SLiM 3 (> 300 cites)

Citations for Tree-sequence Recording in SLiM (> 60 cites)

Citations for SLiM 2 (> 160 cites)

Citations for SLiM 1 (> 160 cites)