Our program already produces a tree. We would like to allow the user the choice to root the tree on an external or internal branch, but the resulting change in the tree needs to be coded - and we are having some problems with this. An algorithm would help a lot. Anybody aware of such an algorithm?
Let me see if I can explain my problem with a couple of illustrations. The first is an image of an unrooted tree, where I have marked the branch on which I want to root the tree by means of a red "X". The second is the tree after rooting it on the specified branch. You can see the changes that take place upon rooting on that branch. We want to do this programmatically, and are looking for an algorithm that we can use to effect the changes. Hope the problem is a bit more clear now. I would greatly appreciate any pointers.
Anyone know of an algorithm to programmatically rearrange a phylogenetic tree upon rooting on a given branch? - ResearchGate. Available from: https://www.researchgate.net/post/Anyone_know_of_an_algorithm_to_programmatically_rearrange_a_phylogenetic_tree_upon_rooting_on_a_given_branch#57608dc4404854159e17aa9a [accessed Jun 14, 2016].