Notung is a "Unified framework for incorporating macroevolutionary information into phylogenetic tasks, including
- reconciling a gene tree with a species tree and estimate upper and lower bounds on the time of duplication;
- rooting unrooted trees using duplication and loss events;
- rearranging rooted gene trees in areas of weak sequence support to minimize the number of duplications and losses. Rearrangement can be used to incorporate macroevolutionary information in gene tree reconstruction and/or to refine unresolved nodes in a non-binary gene tree."
(taken from the Notung site).
The Notung site provides more information.