  Motivation: Millions of genes in the modern species belong to only thousands
of `gene families'. A gene family includes instances of the same gene in
different species (orthologs) and duplicate genes in the same species
(paralogs). Genes are gained and lost during evolution. With advances in
sequencing technology, researchers are able to investigate the important roles
of gene duplications and losses in adaptive evolution. Because of gene complex
evolution, ortholog identification is a basic but difficult task in comparative
genomics. A key method for the task is to use an explicit model of the
evolutionary history of the genes being studied, called the gene (family) tree.
It compares the gene tree with the evolutionary history of the species in which
the genes reside, called the species tree, using the procedure known as tree
reconciliation. Reconciling binary gene and specific trees is simple. However,
both gene and species trees may be non-binary in practice and thus tree
reconciliation presents challenging problems. Here, non-binary gene and species
tree reconciliation is studied in a binary refinement model.
  Results: The problem of reconciling arbitrary gene and species trees is
proved NP-hard even for the duplication cost. We then present the first
efficient method for reconciling a non-binary gene tree and a non-binary
species tree. It attempts to find binary refinements of the given gene and
species trees that minimize reconciliation cost. Our algorithms have been
implemented into a software to support quick automated analysis of large data
sets.
  Availability: The program, together with the source code, is available at its
online server http://phylotoo.appspot.com.
