title: The Treeterbi and Parallel Treeterbi algorithms: efficient, optimal decoding for ordinary, generalized and pair HMMs.
abstract: BACKGROUND
  Hidden Markov models (HMMs) and generalized HMMs been successfully applied to many problems, but the standard Viterbi algorithm for computing the most probable interpretation of an input sequence (known as decoding) requires memory proportional to the length of the sequence, which can be prohibitive. Existing approaches to reducing memory usage either sacrifice optimality or trade increased running time for reduced memory.
  
  
  RESULTS
  We developed two novel decoding algorithms, Treeterbi and Parallel Treeterbi, and implemented them in the TWINSCAN/N-SCAN gene-prediction system. The worst case asymptotic space and time are the same as for standard Viterbi, but in practice, Treeterbi optimally decodes arbitrarily long sequences with generalized HMMs in bounded memory without increasing running time. Parallel Treeterbi uses the same ideas to split optimal decoding across processors, dividing latency to completion by approximately the number of available processors with constant average overhead per processor. Using these algorithms, we were able to optimally decode all human chromosomes with N-SCAN, which increased its accuracy relative to heuristic solutions. We also implemented Treeterbi for Pairagon, our pair HMM based cDNA-to-genome aligner.
  
  
  BACKGROUND
  The TWINSCAN/N-SCAN/PAIRAGON open source software package is available from http://genes.cse.wustl.edu.
authors.affiliation: Laboratory for Computational Genomics, Campus Box 1045, Washington University, St. Louis, MO 63130, USA.
authors.forename: Evan
authors.initials: E
authors.lastname: Keibler
authors.forename: Manimozhiyan
authors.initials: M
authors.lastname: Arumugam
authors.forename: Michael R
authors.initials: MR
authors.lastname: Brent
mesh_terms: D000465:Algorithms; D002877:Chromosomes, Human; D019295:Computational Biology; D018076:DNA, Complementary / Q000737:chemistry; D005796:Genes; D023281:Genomics / Q000379:methods*; D006801:Humans; D008390:Markov Chains; D011381:Programming Languages
chemical_list: D018076:DNA, Complementary