@cwhidden and I had an entertaining discussion about the following question, which apparently came up in the @Alexis_RAxML lab as well. By tree rearrangement I mean an operation on some class of trees, such as subtree-prune-regraft (SPR) on unrooted trees.
Given some collection A of trees and a member t of A, how can we decide if a rearranged version of t is a member of A?
It seems like we’d like some sort of means of serializing trees that is compatible with the class of tree rearrangements. @armanbilge suggested thinking of a tree as the collection of its clades, and encoding that collection of clades as a binary vector indexed by the power set on the taxa (i.e. the set of all taxon subsets), and then keep track of what clades appear and disappear upon rearrangement. This would work, though the power set gets pretty big.
Thoughts? cc @mathmomike @david_bryant