2018 | Pavel Sagulenko, Vadim Puller, and Richard A. Neher
TreeTime is a Python-based framework for phylodynamic analysis using an approximate Maximum Likelihood approach. It can estimate ancestral states, infer evolution models, reroot trees to maximize temporal signals, estimate molecular clock phylogenies, and population size histories. The runtime of TreeTime scales linearly with dataset size. TreeTime is designed for applications in molecular epidemiology and analysis of rapidly evolving heterochronous viral sequences. It is already in use as an integral component of the real-time time outbreak tracking tools nextstrain and nextflu. The main applications of TreeTime are ancestral state inference, evolutionary model inference, and time tree estimation.
TreeTime uses an iterative optimization strategy to find an approximate maximum-likelihood configuration by solving simpler subproblems. It optimizes branch lengths and ancestral sequences iteratively. For divergence time inference, TreeTime calculates the likelihood of the node sitting at a particular time based on information and constraints from its children. It also uses dynamic programming or message passing techniques to compute branch lengths for maximum-likelihood molecular clock phylogenies.
TreeTime can efficiently search for the optimal root by calculating specific quantities for each internal node. It resolves polytomies by grouping pairs of nodes that result in the highest likelihood increase. TreeTime also implements coalescent models to estimate population sizes or coalescent time scales by maximizing the likelihood contribution of the coalescent likelihood for a fixed tree.
TreeTime infers time-reversible substitution models by iteratively estimating parameters of GTR models. It also implements relaxed clocks to allow for variation in substitution rates across the tree. TreeTime is implemented in Python and uses packages such as numpy and scipy for optimization, linear algebra, and interpolation.
TreeTime has been validated against existing tools such as BEAST and LSD, showing comparable or better accuracy in estimating clock rates and divergence times. It has been used to analyze influenza A/H3N2 virus sequences and the 2014–15 EBOV outbreak, demonstrating its effectiveness in estimating population sizes and coalescent rates. TreeTime is available under an MIT license and can be used via a web interface. It is a flexible tool that can be integrated into phylogenetic analysis pipelines and is suitable for large datasets.TreeTime is a Python-based framework for phylodynamic analysis using an approximate Maximum Likelihood approach. It can estimate ancestral states, infer evolution models, reroot trees to maximize temporal signals, estimate molecular clock phylogenies, and population size histories. The runtime of TreeTime scales linearly with dataset size. TreeTime is designed for applications in molecular epidemiology and analysis of rapidly evolving heterochronous viral sequences. It is already in use as an integral component of the real-time time outbreak tracking tools nextstrain and nextflu. The main applications of TreeTime are ancestral state inference, evolutionary model inference, and time tree estimation.
TreeTime uses an iterative optimization strategy to find an approximate maximum-likelihood configuration by solving simpler subproblems. It optimizes branch lengths and ancestral sequences iteratively. For divergence time inference, TreeTime calculates the likelihood of the node sitting at a particular time based on information and constraints from its children. It also uses dynamic programming or message passing techniques to compute branch lengths for maximum-likelihood molecular clock phylogenies.
TreeTime can efficiently search for the optimal root by calculating specific quantities for each internal node. It resolves polytomies by grouping pairs of nodes that result in the highest likelihood increase. TreeTime also implements coalescent models to estimate population sizes or coalescent time scales by maximizing the likelihood contribution of the coalescent likelihood for a fixed tree.
TreeTime infers time-reversible substitution models by iteratively estimating parameters of GTR models. It also implements relaxed clocks to allow for variation in substitution rates across the tree. TreeTime is implemented in Python and uses packages such as numpy and scipy for optimization, linear algebra, and interpolation.
TreeTime has been validated against existing tools such as BEAST and LSD, showing comparable or better accuracy in estimating clock rates and divergence times. It has been used to analyze influenza A/H3N2 virus sequences and the 2014–15 EBOV outbreak, demonstrating its effectiveness in estimating population sizes and coalescent rates. TreeTime is available under an MIT license and can be used via a web interface. It is a flexible tool that can be integrated into phylogenetic analysis pipelines and is suitable for large datasets.