Fast Construction of Suffix Arrays for DNA Strings

DNA 스트링에 대하여 써픽스 배열을 구축하는 빠른 알고리즘

  • 조준하 ((주)소암시스템 연구소) ;
  • 김남희 (한양대학교 전자통신컴퓨터공학부) ;
  • 권기룡 (부경대학교 컴퓨터공학과) ;
  • 김동규 (한양대학교 전자통신컴퓨터공학부)
  • Published : 2007.08.15

Abstract

To perform fast searching in massive data such as DNA strings, the most efficient method is to construct full-text index data structures of given strings. The widely used full-text index structures are suffix trees and suffix arrays. Since the suffix may uses less space than the suffix tree, the suffix array is proper for DNA strings. Previously developed construction algorithms of suffix arrays are not suitable for DNA strings since those are designed for integer alphabets. We propose a fast algorithm to construct suffix arrays on DNA strings whose alphabet sizes are fixed by 4. We reduce the construction time by improving encoding and merging steps on Kim et al.[1]'s algorithm. Experimental results show that our algorithm constructs suffix arrays on DNA strings 1.3-1.6 times faster than Kim et al.'s algorithm, and also for other algorithms in most cases.

DNA 스트링과 같은 대용량의 데이타에 대한 빠른 검색을 수행하기 위해서는 전체 텍스트 인덱스 자료구조를 구축하여 검색하는 방법이 효율적이다. 가장 일반적인 인덱스 자료구조는 써픽스 트리와 써픽스 배열이다. 써픽스 배열은 써픽스 트리보다 적은 공간을 사용하기 때문에 DNA 스트링과 같은 대용량의 데이타에 적합한 자료구조이다. 기존의 써픽스 배열 구축 알고리즘들은 정수 문자집합에 적합한 알고리즘들이어서 DNA 스트링에 적합하지 않았다. 본 논문에서는 DNA 스트링의 문자집합이 4로 고정되어 있는 사실을 이용하여 DNA 스트링에 대한 써픽스 배열을 마르게 구축하는 방법을 제안한다. 고정길이 문자집합에 효율적인 Kim et. al.[1]의 알고리즘의 인코딩 과정과 합병 과정 개선으로 전체 구축 시간을 향상시켰다. 실험 결과 1.3배에서 1.6배 정도 구축 속도가 향상되었으며, 기존의 다른 써픽스 배열 구축 알고리즘들과 비교한 결과에서도 대부분 가장 빠르게 써픽스 배열을 구축하였다.

Keywords

References

  1. D. Kim, J. Jo, H. Park, A fast algorithm for constructing suffix arrays for fixed-size alphabet, Workshop on Experimental and Efficient Algorithms, LNCS 3059, pp. 301-314, 2004
  2. D. Gusfield, Algorithms on Strings, Trees, and Sequences, Cambridge Univ. Press, 1997
  3. E. M. McCreight, A space-economical suffix tree construction algorithm, J. Assoc. Comput., vol. 23, pp. 262-272, 1976 https://doi.org/10.1145/321941.321946
  4. E. Ukkonen, On-line construction of suffix trees, Algorithmica, vol. 14, pp. 249-260, 1995 https://doi.org/10.1007/BF01206331
  5. M. Farach, Optimal suffix tree construction with large alphabets, IEEE Symp. Found. Computer Science, pp. 137-143, 1997
  6. M. Farach-Colton, P. Ferragina and S. Muthukrishnan, On the sorting-complexity of suffix tree construction, J. Assoc. Comput. Mach., vol. 47, pp. 987-1011, 2000 https://doi.org/10.1145/355541.355547
  7. U. Manber and G. Myers, Suffix arrays: A new method for on-line string searches, SIAM J. Computing, vol 22, pp. 935-938, 1993 https://doi.org/10.1137/0222058
  8. D. Gusfield, An 'Increase-by-one' approach to suffix arrays and trees, manuscript, 1990
  9. N. Larsson and K. Sadakane, Faster suffix sorting, Manuscript, pp. 1-20, 1999
  10. J. Karkkainen and P. Sanders. Simple linear work suffix array construction. In Proc. 30th International Colloquium on Automata, Languages and Programming, LNCS 2719, pp. 943-955, 2003
  11. D. Kim, J. Sim, H. Park and K. Park, Linear-time construction of suffix arrays, Symp. Combinatorial Pattern Matching, LNCS 2676, pp. 186-199, 2003
  12. P. Ko, S. Aluru. Space-efficient linear time construction of suffix arrays, Journal of Discrete Algorithms, 3(2-4): pp. 143-156, 2005 https://doi.org/10.1016/j.jda.2004.08.002
  13. J. Sim, D. Kim, H. Park and K. Park, Linear-time search in suffix arrays, Australasian Workshop on Combinatorial Algorithms, pp. 139-146, 2003