Hi everybody! SLiM 5.2 has just been released. This is a major point release, and has some new features as well as some important bug fixes. Please read carefully.
This is a recommended update for all users, due to some significant bug fixes and improvements (detailed below). See the Revision History section in the new SLiM manual (chapter 32) for a more complete list of changes (or the VERSIONS file for even more detail); the changes will be summarized here.
SLiM 5.2 should preserve backward compatibility with SLiM 5.1 in almost cases (models that run in 5.1 will continue to run with no changes). However, it does NOT preserve backward reproducibility, meaning that the same model with the same seed will NOT produce the same results; see below.
Recommended python package versions are tskit 1.0.2 or later, msprime 1.4.1 or later, and pyslim 1.1.1 or later. Note that pyslim 1.1.1 was recently released; all users of SLiM 5.0 and later should update to it.
NEW FEATURES:- SLiM has shifted to a new random number generator called PCG that provides higher performance and better statistical properties (
https://www.pcg-random.org/index.html). The downside of this shift is that backward reproducibility is broken for pretty much all models, as noted above.
- SLiM now has many SIMD optimizations in place thanks to Andy Kern. This will benefit primarily models that either (1) do math operations on large vectors, (2) lean heavily on dnorm(), as many quantitative-trait models do, or (3) lean heavily on spatial interactions and/or the SpatialMap method smooth(), as many spatial models do. It does not speed up the SLiM core's genetics computations (recombination, fitness) since those algorithms are not amenable to the SIMD approach.
- the Plot class has been extended in various ways, with new methods setBorderless(), segments(), rects(), and mtext(), as well as a new angle= parameter to text(), for spiffier custom plotting.
- a new Individual method, zygosityOfMutations(), has been added to facilitate algorithms that need to know the zygosity of mutations in particular individuals.
- new Eidos functions: rdirichlet() and rlaplace(), isClose() and allClose(), rowSums() and colSums(), and readLine(), the last of which is thanks to Chris Talbot.
IMPORTANT BUG FIXES:- Output of float values, such as with cat() or print() (but NOT with format()), would in certain cases erroneously end in ".0" when the correct ending would have been a different digit. This bug has been present since SLiM 3.7 and nobody ever noticed. :-O This bug specifically bit numbers with exactly six digits before the decimal point; for example (this is the value where I noticed the problem!), 125604.390423 would print as 125604.0 rather than 125604.4. All other float values printed correctly; the bug was in a narrow edge case. The percent error between the printed value and the correct value was therefore always pretty small (I guess the largest possible error would occur if 100000.9 printed as 100000.0), so hopefully this bug has not caused a significant problem for anybody's analysis.
- A sign error in calculations for the Student's T distribution in SpatialKernel and InteractionType was found and fixed by Andy Kern. Student's T kernels return completely incorrect results in SLiM 5.1 and earlier, so beware.
- A crash has been fixed that, to my knowledge, bit two people. For the crash to occur, the model had to (1) use tree-sequence recording, (2) use multiple chromosomes, AND (3) use a modifyChild() callback to reject some proposed offspring -- all three conditions had to be true in order to crash.
There are more new features and bug fixes, but those are the big ones; again, see chapter 32 and the VERSIONS file for more complete information.
INSTALLATION NOTES:- If you are on Fedora, RedHat, CentOS, or SUSE Linux Enterprise, the SLiM installer for your Linux platform has already been updated, and installs both the command-line slim binary and the SLiMgui app; see section 2.2.1.
HOWEVER, there is an unresolved build issue with RHEL 9 and EPEL 9 that means the installer will not work on those platforms (it might install SLiM 5.1, or it might just fail). That is not a SLiM problem; it is apparently due to a bad interaction between RedHat and COPR that will eventually be fixed by them. Regarding this issue, Bryce Carson writes: "Until then, users of RedHat Enterprise Linux 9 or 10 or derivative distributions which otherwise prefer EPEL or RHEL-labeled repositories will need to manually download and install the one of the built RPMs from the COPR web page for our repo; usually the Fedora Rawhide RPM will work, unless the downstream distribution uses different binary names or different package names and otherwise causes conflicts (they'll find out when they try to manually install the package). Otherwise, these enterprise users are welcome to build the RPM package themselves using copr-cli on their own system while COPR infrastructure issues are resolved; users shouldn't have troubles building RPMs locally using the spec." Apologies for the difficulties. Building directly from sources should also work fine; see section 2.2.2.
- If you are on Debian or Ubuntu, there is a Bash script that installs both the command-line slim binary and the SLiMgui app; see section 2.2.1.
- If you are on macOS, download the double-click installer from the SLiM home page at
http://messerlab.org/slim/. Note that macOS 14 or later is now recommended.
- If you are on Windows, the pacman installer will be somewhat delayed as usual; a followup post will be made here when it is ready, and in the meantime you can use conda or build from sources following section 2.3.2.
- If you are on Arch, the installer has already been updated; see section 2.2.1.
- For those using conda, the new version is now available for all platforms (but does not give you SLiMgui, only slim); see section 2.5.
Everyone else can download the SLiM.zip source archive from the SLiM home page and build it themselves, or build from sources using the git tag associated with the SLiM 5.2 release, following the instructions for building from sources in chapter 2.
The manuals, recipes, and reference sheets have been updated and should be downloaded again.
SLIM BEGINNERS: Note that a free SLiM Workshop is available online at
http://benhaller.com/workshops/workshops.html, and is highly recommended for new users. It is presently compatible with SLiM 5.0, 5.1, and 5.2; an older edition of the workshop for SLiM 4.3 users is also available. The workshop is offered occasionally in person; watch the slim-discuss list for workshop announcements, or see
https://messerlab.org/slim/#Workshops for workshops presently accepting applications.
If you have any questions, comments, etc., please use the slim-discuss group for that. Thanks, and happy modeling!
Cheers,
Benjamin C. Haller
Messer Lab
Cornell University