Skip to content

Split the all-zeros root node into pieces #673

Closed
@hyanwong

Description

@hyanwong

As discussed in various places (slack, GitHub issues), we think that having a single ancestor with all the ancestral states onto which everything matches is potentially misleading, and certainly problematic for dating.

After discussion with @jeromekelleher, a reasonable compromise seems to be to take all the edges which reference this node, take the right and left coordinates and uniqueify them, then create a new root parent node within each interval. This will probably require cutting up some edges, but it is less extreme than creating a new root node for each tree. We can do this as the final part of outputting the tree sequence (we want to address #649 first, though).

Incidentally, we need not create a new node if in that interval the root node is entirely unary. But perhaps we would want to add a redundant node in this case for consistency?

Hopefully this will make the "ignore_oldest_root" option in tsdate redundant (tskit-dev/tsdate#138)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions