SLiM Workshops: Information for Attendees  

This page is a collection of information for those who are attending, or considering attending, a SLiM workshop. If you are interested in hosting a SLiM workshop at your institution, please contact me. I've tried to make the information here as detailed as I could, to avoid any possible misunderstandings; please let me know if you have any remaining questions.


First of all, as background: SLiM is a software package for creating evolutionary models/simulations that are individual-based and genetically explicit. It is scriptable, flexible, fast, and includes an interactive graphical modeling environment. You can read more about it on the SLiM home page.

For a five-day workshop, the plan is to try to cover all the major topics in the SLiM manual, starting with lots of introductory material to get beginners up to speed with SLiM and its associated scripting language Eidos, and ending up at advanced topics like non-Wright–Fisher models, tree-sequence recording, continuous-space models, and nucleotide-based models. We won't cover everything in the manual – that would be overwhelming! – but we'll try to cover all the big topics. There will also be time for attendees to work on their own models with help from me, and we may also have time to explore some optional side topics that are of particular interest to those attending each workshop. More detailed information on the topics covered is in the SLiM workshop overview.

If you are a beginner with SLiM, you might wish to get a head start by reading this paper:

B.C. Haller, P.W. Messer. (2019). Evolutionary modeling in SLiM 3 for beginners. Molecular Biology and Evolution 36(5), 1101–1109. doi:10.1093/molbev/msy237

You can download a PDF of that paper here. This preparation is not mandatory; we will cover everything in the paper during the workshop.


In general, SLiM workshops are free to attend, although there may be occasional exceptions. In some cases there may be funding available for student travel grants; see the workshop announcement for such details. Attendees are responsible for their own travel, lodging, and food costs. Please do not buy tickets or reserve accommodations until you have been formally accepted to the workshop. Workshops may provide snacks, or even lunches; see the workshop announcement or inquire for details from the workshop host.

Computer hardware:

Workshops may provide Macs for every attendee to use, if a computer hall is available; see the workshop announcement. If Macs are not provided, every attendee must bring their own Mac laptop. Macs are required because the workshop is taught using the SLiMgui interactive modeling environment, which runs only on macOS. The workshop cannot be followed using SLiM at the command line on Linux, even if you are a relatively experienced SLiM user; SLiMgui is necessary for many interactive explorations during the workshop exercises. Macs should be running macOS 10.11 (or later), with at least 8 GB of RAM. The workshop will not be terribly processor-intensive; fast machines are not essential. No special graphics hardware, etc., is needed.

Computer software:

If you are bringing your own Mac, there are several software packages that need to be installed. Please install and test all software prior to the beginning of the workshop, and if you have installation issues, please resolve them before the workshop. With as many as 30 attendees at a workshop, I simply cannot begin the workshop by helping each person install the necessary software on their personal machine, nor can I provide individual help for everyone's installation issues over email. The IT department at your institution should be able to help you with the installation of software. In everything that follows, refers to the application /Applications/Utilities/ The software needed:

• SLiM and SLiMgui (the current version). Typically you will install this using the macOS double-click installer downloadable from the SLiM home page. Once you have installed it, test it with the following steps. (a) Launch the application /Applications/ to ensure that it launches without errors. (b) Run and execute the commands:

slim -testEidos
slim -testSLiM

to ensure that the slim command-line tool runs correctly and passes its self-tests.

That's all that's needed for SLiM and SLiMgui, but to do various other things in the workshop – to work with tree-sequence recording in Python, in particular – other software is needed too:

• The Apple Developer Tools and the Apple Command-Line Tools packages. It may or may not prove necessary for you to install these, depending upon the package installer you use, etc., but they're useful to have installed anyway. The former package can be installed through the App Store as the Xcode package, and then you can run and execute xcode-select --install to install the command-line tools. Alternatively, you can get both packages from the Apple developer website; you will probably need an Apple login to proceed. Make sure that you install the correct version of the developer tools for your macOS version; the simplest solution is to be on the latest version of both macOS and the developer tools.

• The package installer of your choice – I use MacPorts, but Homebrew or conda should also work. For MacPorts, see the MacPorts installation page. MacPorts (and probably other package installers) requires that you have the Apple Developer Tools package and the Apple Command-Line Tools package installed first; the necessary links are provided on the MacPorts page. Once the Apple tools are installed, installing MacPorts can be done with a double-click installer available on that page.

If you use the conda package installer, please see these notes on conda installation, written up by Ian Caldas (thanks Ian).

• Python 3.6.8 or a similarly recent version (> 3.5). I install this with MacPorts (sudo port install python36, sudo port install py36-setuptools, sudo port install py36-pip), but using Homebrew or conda should also be possible. To test: run and execute the command python3. You should get an interactive Python prompt; press control-D to exit back to the shell. If you then execute python3 --version it should print a version number > 3.5; if not, you need to upgrade to a more recent version.

• The GNU Scientific Library (GSL). This is required by the msprime Python package. I install it with MacPorts (sudo port install gsl), but other methods may also work. If there is a problem with this installation, you will find out when you try to install msprime in the next step.

• The Python packages numpy, matplotlib, msprime, and pyslim. I install these with pip3 install <package> --user, but there are various other installation methods. I install Python packages with --user because installing them system-wide does not work for me on macOS, but probably this is just some trivial issue with my path or permissions or some such. To test: run and execute the commands:

cd ~/Desktop

At the Python prompt, type:

import numpy as np
import matplotlib as plt
import msprime, pyslim

If those commands all execute without errors, you are probably good, but one additional check is advised. Do not close the Terminal window, but go to Safari and download the file installTestPython.trees to the Desktop. Then switch back to Terminal, and – still at the interactive Python prompt – type the following commands one at a time:

ts = pyslim.load("installTestPython.trees").simplify()
mutated = msprime.mutate(ts, rate=1e-7, random_seed=1, keep=True)

If everything is installed correctly, a new file named installTestOUT.trees should be created on the Desktop.

• R. Version 3.6.0 is current as of this writing, but any version from the last couple of years should be fine; we will not be using cutting-edge features. No packages are needed beyond the base install, but the Rscript command-line utility should be included. A double-click installer for R can be downloaded from CRAN's R for Mac OS X page. To test: download the linked file installTestR.R to the Desktop, then run and execute the commands:

cd ~/Desktop
Rscript installTestR.R

After less than a second, you should see output including null device, and a new file named plot_1.pdf should be created on the Desktop. If you double-click that file, a plot with a jagged red line should open, probably in (the line covers only part of the x-axis; that is fine). To check that the GUI front end is correctly installed, find and launch /Applications/; if it launches without errors you should be fine.


A given workshop's announcement specifies the registration deadline for that workshop, and the email addresses to which you should send your application. In general, the following information is requested in your application email:

(1) your name

(2) your university or institutional affiliation

(3) a link to a research website or similar academic page, if you have one

(4) a 1–2 sentence description of your level of experience with SLiM and any other forward genetic simulation software, if any

(5) a 1–2 sentence summary of why you want to attend the workshop (i.e., the connection to your research)

(6) 1–2 sentences about any specific topics within SLiM that you hope to learn about in the workshop

Please do not apply to a workshop unless you are sufficiently serious that you will actually attend, if accepted. Note that acceptance for workshops is generally first-come-first-served (apart from the priority for those from the hosting institution), so early application is advised.

Food & beverages:

The workshop host will have some sort of plan regarding lunch during the workshop; either lunches will be provided on-site, or attendees will walk to a nearby spot for lunch off-site. If you have any dietary restrictions, please notify the host so that those restrictions may be accommodated. You will be responsible for other meals on your own time. Refreshments such as coffee and pastries may be provided during the workshop, but if you need such refreshments (due to blood sugar issues, for example) you would be wise to bring your own.


Feedback on these workshops is very important to me; please send it to me at bhaller [at] mac [*] com (that's a "dot" there). Feel free to provide detailed constructive criticism; you will not offend me as long as you're nice about it. :-> Such feedback will really help me to improve the workshop for future attendees. Thanks!