The treeducken simulator

What is it? How does it work?

What is ?

is a simulator of a nested set of phylogenetic trees with a gene tree inside of a locus tree inside of a species tree. The name was a collaboration with Will Pett and my adviser Tracy Heath, and it comes from the infamous dish that is a nested set of cooked poultry with a chicken inside of a duck inside of a turkey. The idea behind this hierarchical model with different levels of trees is to capture the processes that can cause discordance between phylogenies of genes and phylogenies of species. My dissertation research will be using this simulator to perform sensitivity tests of these gene-tree/species-tree models and see how useful these models can be when applied to examining cospeciation.

How does it work?

first forward-simulates a species tree using a constant-rate birth-death process, then it simulates, within that species tree, a locus tree is forward-simualted using a constant-rate birth-death-transfer process. Finally, within the locus tree a gene tree is simulated using a censored coalescent process.

is written in the C++ programming language and can be installed following the directions outlined in the README on its Github page. Once installed the user can specify the commands to run it either all on the command like this:

treeducken -sbr 1.0 -sdr 0.5 -r 10 -nt 10

This will generate 10 species tree with 10 tips and a species birth rate of 1.0 and species death rate of 0.5 according to a constant-rate birth-death process. Another option, in my opinion the easier option, is to use an input text file like this:

####################################
# Species Tree parameters          #
####################################

-nt 10 # number of taxa
-sbr 0.1 # species birth rate
-sdr 0.05 # species death rate
-r 100 # number of replicates
-nl 1 # number of locus trees per species tree
-ng 1 # number of gene trees per locus tree

####################################
# Locus Tree parameters            #
####################################

-gbr 0.0 # gene birth rate

# gene death rate
-gdr 0.0
# lateral gene transfer rate
-lgtr 1.0

####################################
# Gene Tree parameters             #
####################################

-ipp 1 # individuals per locus to be sampled 
-ne 500 # effective population size

and then running the following command:

treeducken -i settings_file.txt