Skip to content

Welcome to the SHaDiE Documentation

Overview

shadie (Simulating Haploid-Diploid Evolution) is a Python API wrapper for the forward-in-time evolutionary simulation software, SLiM. shadie simulates non-neutral mutations in SLiM, then uses functionality provided by pyslim and tskit to overlay neutral mutations using coalescent simulations in msprime.

shadie also provides a user-friendly Python API framework for using SLiM. This is meant to make SLiM a little more approachable for users with prior Python knowledge, however it does not incorporate all the functionality of SLiM and it is hightly encouraged for users to familiarize themselves with the SLiMgui and the SliM Manual. The Messer Lab provides excellent documentation for learning SLiM.

Finally, shadie was first developed with the intention of modeling realistic plant lifecycles in SLiM, so much of the tutorials and documentation focus on this use case.


Use

shadie works best in Jupyter Notebooks. There are plans to develop a command line tool, however shadie relies heavily on visualizations to aid users in designing their SLiM model and analyzing the output of their simulations. For this reason a Python API is recommended, especially for new users.

SLiM

SLiM is powerful evolutionary simulation framework developed by the Messer Lab. They provide fanastic documentation and resources on their website.

pyslim

pyslim is a package that modifies tskit tree sequence files outpu by SLiM. shadie utilizes pyslim to overlay neutral muations with msprime. This method uses coalescent and is therefore much faster than SLiM in most cases.

Dependencies

General

- subprocess
- numpy
- pandas
- SLiM
- msprime
- pyslim
- tskit
- loguru

Plotting:

- toyplot: for static plots
- toytree: for static plots
- altair: for interactive plots
- notebook: for displaying plots in Jupyter Notebooks