The OptArgs object
run_treeknit! and several other functions take an OptArgs object that controls several parameters of the inference process. 
TreeKnit.OptArgs — Typestruct OptArgsStoring parameters for SplitGraph.runopt function.
General
- γ::Float64 = 2
- itmax::Int64 = 15: maximal number of iterations of naive MCCs / SA cycles.
- likelihood_sort::Bool = true: sort equivalent configurations using likelihood test based on branch length.
- resolve::Bool = true: try to resolve trees while finding MCCs.
- strict::Bool = true: only resolve unambiguous splits
- seq_lengths: lengths of sequences that trees were built from. Used in likelihood calculations. This is initialized from other input arguments, and defaults to sequences of length one.
Pipeline options - necessary for K>2 trees
- pre_resolve::Bool = true: pre-resolve all trees using each other prior to MCC inference
- rounds::Int=1: #rounds of MCC inference and tree resolution on all tree pairs
- final_no_resolve::Bool = false: do not resolve in the final round of pair-wise MCC inference
- parallel::Bool = false: parallelize MCC inference as much as possible.
Simulated annealing
- nMCMC::Int = 25: The total number of MCMC steps (swaps) for a tree of- nleaves is- nMCMC*n. The number of MCMC steps at one temperature is- nMCMC * n / nT.
- cooling_schedule = :geometric: type of cooling schedule- (:geometric, :linear, :acos)
- Tmin::Float64 = 0.05: minimal temperature of SA.
- Tmax::Float64 = 0.8: maximal temperature of SA.
- nT::Int = 3000: number of steps in the cooling schedule
The MCC_set object
We define an MCC_set object to store the inferred MCCs of multiple trees.
TreeKnit.MCC_set — Typestruct MCC_setstructure to store and access computed MCCs for tree pairs
- no_trees: number of trees
- order_trees: vector of tree labels.
- mccs: Dictionary of calculated mccs, key is set of labels of trees in each tree pair
Add and retrieve mccs with get! and add! and Tuple or Vararg of tree labels or position of tree labels in order_trees