tsdate
tsdate copied to clipboard
Infer the age of ancestral nodes in a tree sequence.
Now that the "variational_gamma" method doesn't need to be passed a "population_size" or "priors" object, we should probably move those parameters into the `inside_outside` and `maximization` methods, rather than being...
We had some CLI-based scripts to help evaluate dating accuracy etc in https://github.com/tskit-dev/tsdate/blob/8d687f7920d2b0c46f4662e5dd8ac8d7649d102f/evaluation/evaluate_accuracy.py#L787. It could be useful to reimplement something similar for results from the `variational_gamma` method (and we could...
In some of the tests we set rescaling-intervals to 0, presumably for speed reasons. It would be sensible to have a value which was a function of the number of...
Some CLI parameters are only used in certain methods (e.g. `population-size` in "inside-outside"; `max-shape` and `rescaling-intervals` in "variational_gamma", used e.g. in the test suite for `test_no_progress()`). We should probably error...
It'll frequently be the case that singletons are not phased. Singleton variants aren't used by tsinfer, but are crucial for correct dating. Here's how we'll handle unphased singletons: 1. Split...
Hannes had an interesting idea: how do polytomies affect the variation in posterior times for a node? We could test this by taking a known topology and collapsing some of...
It looks like we are defaulting to running @nspope's `utils.split_disjoint_nodes()` before dating, certainly for the variational gamma method. We should add this to `tsdate.preprocess_ts` (performed *after* the simplification) and also...
This discrepancy functions gives us a metric for comparing two tree sequences. The `tree_discrepancy` method returns for the discrepancy between tsa and tsb, the tuple of a. the total shared...
We've been looking at site vs branch diversity to assess at a glance whether an inferred + dated tree sequence has a reasonable timescale. However, this may not be the...
I'm running tsdate on a large tree sequence (74mil edges) and noticing that the pre-algorithm steps are quite costly. In particular, there's a call to `ts.simplify()` in `util.reduce_to_contemporaneous()` that really...