Companion Data Page

Family-based Selection: An Efficient Method for Increasing Phenotypic Variability

Shraddha Lall1, Chris Milton1, Benjamin de Bivort 1,2,*

1 - Department of Organismic and Evolutionary Biology, Harvard University, Cambridge, MA, USA
2 - Center for Brain Science, Harvard University, Cambridge, MA, USA
* - correspondence: debivort * oeb.harvard.edu

Preprint

Default model scripts - selection on variability for a trait with heritable variability, non-heritable mean

var.py Sets up the starting population conditions. This file contains the variables needed for running the simulations, such as population size, strength of selection, recombination rate etc.
pickles.py Functions to generate data for use across runs. Certain data needs to be generated once, and then can be used repeatedly across many runs of the model. For example, for a given trait of interest, and underlying polygenic architecture, a distribution of site effect sizes and their epistatic interactions is calculated. These values can then be used across all runs of selection, and across different selection regimes. Each function in this file defines and dumps a .pickle file containing such data, which can be imported in subsequent scripts to run the model.
generate_pickles.py Uses the functions in pickles.py to generate data for use across runs of the model
setup.py Initializes a model run. When starting a new run of the model, starting gametes needs to be created, and a parental generation 0 needs to be established, following which selection occurs. This file contains the functions used during this process of setting up for different selection regimes.
selection.py Implements selection for the required number of generations. Following the setup process, the specific selection regime is implemented over several generations and the trait value is stored over time. This file contains functions that are used to implement mass selection, alternative stratgey for mass selection and family-based selection during each run of the model.
sites_fixed.py Extracts metrics from genotype of final populations. From the genotype of the selected population, certain variables of interest such as fixation probability of a site can be calculated. This file contains functions that enable parsing of genotypic data into these useful parameters.
batch.py Example setup of a batch. A certain condition (for example here, mass selection with a low weight of epistasis) with the parameters as given in Var.py needs to be run multiple times to get an estimate of expected population dynamics. This is one example file setting up such a batch of runs, in this case, 250 runs of mass selection with low weight of epistasis. The results are stored for phenotypic and genotypic estimations from each run in numpy files.

Additional model scripts - selection on mean for a trait with heritable mean, non-heritable variability

setup_mean.py Initializes a model run for selection on mean. Sets up gamete generation and the parental generation 0 for selection, for mass and family selection regimes. Builds upon setup.py from the default model.
set_on_mean.py Implements selection for increasing mean value of the trait for the specified number of generations. Following the setup process, the specific selection regime is implemented over several generations and the trait value is stored over time. This file contains functions that are used to implement mass selection and family-based selection on the mean. Builds upon selection.py from the default model.

Additional model scripts - selection on variability for a trait with heritable mean and variability

var_mv.py Sets up the starting population conditions to implement selection on variability with both heritable mean and variance. This file contains the variables needed for running the simulations, such as population size, strength of selection, recombination rate etc. It is similar to the file 'var.py' from the default model.
eff_size_pickles.py This file contains functions to generate different effect size distributions for sites that determine the mean and variability of a trait, and stores them as pickles to use for downstream selection runs.
generate_eff_size_pickles.py Uses the functions in eff_size_pickles.py to generate new data for mean and variability site effect sizes for use across runs of the model.
site_funcs.py This file contains functions to create and manage sites for mean and variability. The functions generate site IDs for mean and variability sites, create chromosomes for an individual with mean and variability determining sites and use the site effect sizes to estimate additive genotypic values for mean and variability
setup_mv.py Defines functions to set up the starting population with heritable mean and variability in the trait of interest and initialize different selection strategies for selection on variability. It is similar to setup.py from the default model.
selection_mv.py Defines functions to implement mass (both types) or family selection on variability, for a trait with heritable mean and variability, over multiple generations. It is similar to selection.py from the default model.
batch_mv.py Example setup of a batch for selection on variability for a trait with heritable mean and variability. It is similar to batch.py in the default model. This example script sets up 500 runs of basic mass selection with 15x larger effect size sites for mean.