Version 6.0b1 (pre-release)
Pre-releaseSLiM 6.0b1 released
Hi everybody! SLiM 6.0b1 has just been released. This is a "beta" release, meaning that it is a pre-release version of SLiM 6.0. It is missing some functionality, and has not been tested comprehensively. It is recommended only for relatively advanced users who are interested in trying out the new functionality that will be in SLiM 6. Please read carefully. The primary purpose of a beta release is to get testing and feedback prior to the final release, so if you try SLiM 6.0b1, please drop me a line at bhaller@mac.com and let me know your experiences with it, both positive and negative.
SLiM 6.0 does NOT preserve backward compatibility with SLiM 5.2; many models will run without modification, but some interfaces have changed, and so some models will no longer run without changes. SLiMgui will auto-fix almost all of the incompatibilities that have been introduced; if you build SLiMgui from the source code of this release, and then use it to open and run your model, it will offer to auto-fix problems that it understands. SLiM 6.0 also does NOT preserve backward reproducibility with SLiM 5.2; even models that still run without modification will typically not produce the same results from the same random number seed. SLiM 6.0 is a foundational re-architecture of the genetics core of SLiM; as such, preserving backward compatibility and backward reproducibility was not possible.
Recommended python package versions are tskit 1.0.3 or later, msprime 1.4.4 or later, and pyslim 1.2.0b1 or later. Note that pyslim 1.2.0b1 is a "beta" prerelease version also, and was recently released (thanks to Peter Ralph for making this happen). It is required if you want to use pyslim with SLiM 6. See https://tskit.dev/pyslim/docs/stable/installation.html for instructions on installing this beta version of pyslim.
SLiM 6.0b1 can be found at: https://github.com/MesserLab/SLiM/releases/tag/v6.0b1.
NEW FEATURES:
-
The main new feature of SLiM 6 is that it supports multiple phenotypic traits ("multitrait"), which can be "multiplicative" traits (typical population-genetics traits with multiplicative effects of 1+hs and 1+s) or "additive" traits (typical quantitative-genetics traits with additive effects of 2ha and 2a). For background on all of this, which is a large and complex topic, it is recommended that you read the SLiM manual sections 1.5.4 and 1.7, and then work through the examples in chapter 13. Of course if you are not closely familiar with SLiM you might need to work through other sections as well!
-
The old way of modeling quantitative traits in SLiM, with sumOfMutationsOfType(), is now deprecated. Using the new built-in trait-based facilities is much more general and much more efficient. See section 1.7 and chapter 13.
-
There wre a number of other improvements to SLiM's genetic model made in concert with the changes for multitrait SLiM. Dominance coefficients are now a property of mutations; every mutation can have its own dominance coefficient, independet of other mutations. The hemizygous dominance coefficient is now also a property of mutations, providing much more flexibility when modeling dosage compensation effects with sex chromosomes. "Independent dominance", "substitution accumulation", and "mutation effect accumulation" are new optimizations that can speed up some models dramatically. A "logistic" trait type can be used for modeling traits that represent a probability or risk, such as disease risk. Read about all of this in section 1.7 and chapter 13, as well as section 10.6. New calcVA(), calcVD(), calcVG(), and calcVP() functions by Vitor Sudbrack provide those metrics when modeling quantitative traits. New calculateFitness() and calculatePhenotype() functions on Individual provide custom calculations of fitness and trait values. A great many recipes were updated; if there's a recipe you have been working from, have a look to see how it might have changed.
-
All of these new features are compatible with tree-sequence recording; just update tskit, msprime, and pyslim to the recommended versions (or later), as specified above. Note that there were several major changes to SLiM's tree-sequence metadata for SLiM 6; have a look at the pyslim documentation and chapter 29 of the SLiM manual for further information.
-
There's lots of other stuff -- bug fixes, SLiMgui improvements, etc. -- but it's not all going to get described here. You can wade through the VERSIONS file if you're really interested. The actual SLiM 6 release will be accompanied by the usual release notes.
MISSING FUNCTIONALITY:
-
This is a beta, so not everything is squared away yet. The main area that is not yet complete is file input and output of information regarding multiple traits. File I/O works completely for tree-sequence recording (i.e., .trees files). But for VCF, MS, and SLiM's own file format, multi-trait information is not yet written or read correctly. Getting all the file I/O working completely is a significant project, and I didn't want to hold up the beta for it, but I realize that some folks will very much want this functionality. It is coming!
-
Some additional SLiMgui support for multitrait models is planned, such as a way to see the defined traits and their attributes, a way to see the way that mutations, mutation types, etc. are configured with respect to multiple trait, and so forth.
-
Profiling, memory usage metrics, and similar "introspection" are not yet updated fully for multitrait SLiM.
-
Lots more testing is needed, although this beta is robust in all of the tests that we have conducted.
-
Workshop materials need to be updated for SLiM 6; at present the workshop materials target SLiM 5.2. That will not change until SLiM 6.0 has been released in final form.
INSTALLATION NOTES:
This beta prerelease is not being released through installers or conda. If you want to use it, you will need to build it from sources. Instructions for building SLiM from sources are provided in chapter 2 of the manual. The release has been tagged as v6.0b1 (https://github.com/MesserLab/SLiM/releases/tag/v6.0b1) in GitHub.
The manuals, recipes, and reference sheets have been updated and should be downloaded again. Since this is not a final release, the links on the SLiM home page will still give you materials for SLiM 5.2. The GitHub release itself is the only place where SLiM 6.0b1 materials have been uploaded: https://github.com/MesserLab/SLiM/releases/tag/v6.0b1. Obtain them from there.
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