Skip to content

Releases: neherlab/treetime

Bug fix release

11 Aug 02:02
Compare
Choose a tag to compare
  • fix output of mutations into the branch_mutation.txt file which was masked by a conditional
  • adjust CLI help
  • adjust output precision

Bug fix release

21 Mar 14:01
Compare
Choose a tag to compare
  • calls to some random number generator error-ed after the recent switch to treetime owned RNGs.
  • default argument for clock-filter method had a spelling mistake
  • a branch length optimization function didn't handle profiles==True correctly

0.11.2: improvements in VCF parsing/writing + clock-filter functionality

22 Jan 09:55
Compare
Choose a tag to compare

0.11.2: improvements in VCF parsing/writing + clock-filter functionality

  • rewrite of the vcf reading and writing code including many more tests, closer alignment with spec, and performance improvements by @jameshadfield PR #263
  • clock-filter command can now remove detected outliers with the additional flag --prune-outliers.

v0.11.1

07 Sep 15:32
Compare
Choose a tag to compare

Bug fixes and tweaks to plotting

  • fix division by zero error during GTR inference
  • improve doc strings in parse dates
  • tweaks to background shading in timetree plot function (plot_vs_years)
  • allow to specify branches on which date confidence intervals are shown.

v0.11.0

31 Jul 09:48
52e7cd1
Compare
Choose a tag to compare

Feature: Better clock-filtering

Previously, only a crude analysis of whether the divergence of tips roughly follows a linear trend was implemented. Tips that deviated too much from that regression line were flagged as outliers and this threshold was parameterized as number of interquartile distances of the distribution of residuals n_iqd. This filter is not very sensitive and often misses misdated tips that severely distort the tree but still fall within the distribution of root-to-tip distances at that time. To overcome this, we implemented a novel filtering method that fits a simple gaussian model of divergence accumulation. Information on outliers is saved in a pandas DataFrame self.outliers of TreeTime and written to file as a tsv file when running treetime as command line tool.

Other fixes

  • error when rate estimate is negative during the rate susceptibility calculation. Give hint in error message to specify the rate and its uncertainty explicitly.
  • Fix bug issue #250 introduced in 0.10.0 where treetime fails in absence of an alignment when trying to create an auspice json file. PR #251

0.10.1: bug fix release

25 May 07:26
Compare
Choose a tag to compare
  • avoid probability loss at the end of the domain of distributions (addresses #242)
  • fix erroneous check for merger model
  • raise error when probability is lost.
  • improve initial guess in branch length optimizations

v0.10.0: add auspice.json output, drop python 3.6

07 May 09:16
Compare
Choose a tag to compare
  • the output directory now contains a json file that is compatible with auspice.us. Both time scaled phylogenies and ancestral inferences can now be visualized and explored using auspice. Available colorings are "Date", "genotype", "Branch support", and "Excluded". See PR #232 for details.
  • move most function related to IO of the command line wrappers into a separate file.
  • make TreeTime own its random number generator and add --rng-seed to control state in CLI. Any previous usage of numpy.random.seed will now be ignored in favor of --rng-seed. See PR #234
  • add flag --greedy-resolve (currently default) as inverse to --stochastic-resolve with the aim of switching the default behavior in the future.
    Add deprecation warning for greedy-resolve.
  • tighten conditions that trigger approximation of narrow distribution as a delta function in convolution using FFT PR #235.
  • Drop support for python 3.6.
  • Don't attempt to show figure when calling Phylo.draw to suppress matplotlib back-end warning.

v0.9.6: bug fixes and new mode of polytomy resolution

16 Apr 12:06
9d0c6ba
Compare
Choose a tag to compare
  • in cases when very large polytomies are resolved, the multiplication of the discretized message results in messages/distributions of length 1. This resulted in an error, since interpolation objects require at least two points. This is now caught and a small discrete grid created. PR #230
  • increase recursion limit to 10000 by default. The recursion limit can now also be set via the environment variable TREETIME_RECURSION_LIMIT. PR #230
  • removed unused imports, fixed typos
  • add new way to resolve polytomies. the previous polytomy resolution greedily pulled out pairs of child-clades at a time and merged then into a single clade. This often results in atypical caterpillar like subtrees. This is undesirable since it (i) is very atypical, (ii) causes numerical issues due to repeated convolutions, and (iii) triggers recursion errors during newick export. The new optional way of resolving replaces a multi-furcation by a randomly generated coalescent tree that backwards in time mutates (all mutations are singletons and need to 'go' before coalescence), and merges lineages. Lineages that remain when time reaches the time of the parent remain as children of the parent. This new way of resolving is much faster for large polytomies. This experimental feature can be used via the flag --stochastic-resolve. Note that the outcome of this stochastic resolution is stochastic! PR #231

load custom GTR via CLI and bug fixes

15 Feb 19:52
Compare
Choose a tag to compare
  • fix bug that omitted the inferred state of the root in the nexus export of the migration command
  • add CLI flag and functionality to load sequence evolution models inferred and saved by TreeTime as human-readable text files. The flag is --custom-gtr <filename> and overwrites any arguments passed under the --gtr flag.
  • explicitly specify the optimization method, brackets, bounds, and tolerances in calls of scipy.optimize.minimize to suppress scipy warning. Scipy had previously silently ignored bounds when the method wasn't explicitly set to bounded.

0.9.4: bug fix and performance improvements

21 Sep 12:13
Compare
Choose a tag to compare
  • avoid negative variance associated with branch lengths in tree regression. This could happen in rare cases when marginal time tree estimation returned short negative branch length and the variance was estimated as being proportional to branch length. Variances in the TreeRegression clock model are now always non-negative.
  • downsample the grid during multiplication of distribution objects. This turned out to be an issue for trees with very large polytomies. In these cases, a large number of distributions get multiplied which resulted in grid sizes above 100000 points. Grid sizes are now downsampled to the average grid size.