Improved Algorithms for Finding Gene Teams and Constructing Gene Team Trees
A gene team is a set of genes that appear in two or more species, possibly in a different order yet with the distance between adjacent genes in the team for each chromosome always no more than a certain threshold delta. A gene team tree is a succinct way to represent all gene teams for every possible value of delta. In this paper, improved algorithms are presented for the problem of finding the gene teams of two chromosomes and the problem of constructing a gene team tree of two chromosomes. For the problem of finding gene teams, Beal et al. had an O(n lg(2) n)-time algorithm. Our improved algorithm requires O(n lg t) time, where t <= n is the number of gene teams. For the problem of constructing a gene team tree, Zhang and Leong had an O(n lg(2) n)-time algorithm. Our improved algorithm requires O(n lg n lglg n) time. Similar to Beal et al.'s gene team algorithm and Zhang and Leong's gene team tree algorithm, our improved algorithms can be extended to k chromosomes with the time complexities increased only by a factor of k.
algorithms gene teams data structures comparative genomics conserved gene clusters