-
Notifications
You must be signed in to change notification settings - Fork 78
Description
As it stands when #672 is merged we break compatibility in the following ways:
- File format (not too bad as Mutation time #672 has a
tskit upgradecli support) python MutationTable.add_rowevery call to this function will need updating.python MutationTable.[set|append]_columnsevery call to these functions will need updating.cpython LightweightTableCollection.from_dictwill fail when passed dicts made in, for example, msprime 0.7.4 or newer.- C API extra time args to mutation table methods (no way around this)
2 and 3 could be avoided by allowing a default mutation-time of zero as on these methods. This would result in an invalid tree-sequence but TableCollection.tree_sequence could catch mutation time errors, call compute_mutation_times and build the tree sequence again, logging out a warning that mutation times were set.
4 Could be avoided in a similar way, by detecting the absence of mutation times in the dict and calling compute_mutation_times again.
Note that currently compute_mutation_times spreads mutations evenly across edges (except for those above a root node where the mutation is placed at the same time as the root)
In summary we could make this release more or less backward compatible (python-wise). My concern is that users should be aware that they have placeholder mutation times, as otherwise they could end up using them in some analysis as if they were "proper".
Tagging some people who may have input here: @jeromekelleher @petrelharp @hyanwong @molpopgen @bhaller