본문 바로가기
KERD
논문KCI 등재

Benchmarking of BioPerl, Perl, BioJava, Java, BioPython, and Python for Primitive Bioinformatics Tasks and Choosing a Suitable Language

0

조회

0

다운로드

0

인용

0

참고문헌

키워드

주제분류컴퓨터학

초록

Recently many different programming languages have emerged for the development of bioinformatics applications. In addition to the traditional languages, languages from open source projects such as BioPerl, BioPython, and BioJava have become popular because they provide special tools for biological data processing and are easy to use. However, it is not well-studied which of these programming languages will be most suitable for a given bioinformatics task and which factors should be considered in choosing a language for a project. Like many other application projects, bioinformatics projects also require various types of tasks. Accordingly, it will be a challenge to characterize all the aspects of a project in order to choose a language. However, most projects require some common and primitive tasks such as file I/O, text processing, and basic computation for counting, translation, statistics, etc. This paper presents the benchmarking results of six popular languages, Perl, BioPerl, Python, BioPython, Java, and BioJava, for several common and simple bioinformatics tasks. The experimental results of each language are compared through quantitative evaluation metrics such as execution time, memory usage, and size of the source code. Other qualitative factors, including writeability, readability, portability, scalability, and maintainability, that affect the success of a project are also discussed. The results of this research can be useful for developers in choosing an appropriate language for the development of bioinformatics applications.

Abstract

Recently many different programming languages have emerged for the development of bioinformatics applications. In addition to the traditional languages, languages from open source projects such as BioPerl, BioPython, and BioJava have become popular because they provide special tools for biological data processing and are easy to use. However, it is not well-studied which of these programming languages will be most suitable for a given bioinformatics task and which factors should be considered in choosing a language for a project. Like many other application projects, bioinformatics projects also require various types of tasks. Accordingly, it will be a challenge to characterize all the aspects of a project in order to choose a language. However, most projects require some common and primitive tasks such as file I/O, text processing, and basic computation for counting, translation, statistics, etc. This paper presents the benchmarking results of six popular languages, Perl, BioPerl, Python, BioPython, Java, and BioJava, for several common and simple bioinformatics tasks. The experimental results of each language are compared through quantitative evaluation metrics such as execution time, memory usage, and size of the source code. Other qualitative factors, including writeability, readability, portability, scalability, and maintainability, that affect the success of a project are also discussed. The results of this research can be useful for developers in choosing an appropriate language for the development of bioinformatics applications.

참고문헌 (32)

  1. P. Baldi, "Bioinformatics: The Machine Learning Approach, 2nd edition" (2001), MIT Press
  2. A.D. Baxevanis, "Bioinformatics: A Practical Guide to the Analysis of Genes and Proteins, 3rd edition" (2005), Wiley
  3. D.A. Benson, "GenBank", Nucleic Acids Research, 27, pp.12~17 (1999)
  4. R.C.G. Holland, "BioJava: an Open-Source Framework for Bioinformatics", Bioinformatics, 24(18), pp.2096~2097 (2008)
  5. "BioJava Web information"[URL]
  6. "BioPerl Web information"[URL]
  7. "BioPython Web information"[URL]
  8. M. Catanho, "BioParser: a tool for processing of sequence similarity analysis reports", Applied Bioinformatics, 5(1), pp.49~53 (2006)
  9. N. Cristianini, "Introduction to Computational Genomics" (2006), Cambridge University Press
  10. O. Croce, "Querying the public databases for sequences using complex keywords contained in the feature lines", BMC Bioinformatics, 7, pp.45~ (2006)
  11. H. Deitel, "How to Program" (2002), Prentice Hall
  12. Open Source Initiatives in Bioinformatics, "J. Dugan", A report submitted to health science initiative application working group Internet2, ~ (2001)
  13. M. Fourment, "A comparison of common programming languages used in bioinformatics", BMC Bioinformatics, 9, pp.82~ (2008)
  14. W. Keedwell, "Intelligent Bioinformatics: The Application of Artificial Intelligence Techniques to Bioinformatics Problems" (2005), Wiley
  15. R. Khaja, "Methods for identifying and mapping recent segmental and gene duplications in eukaryotic genomes", Methods Molecular Biology, 338, pp.9~20 (2006)
  16. B. Landsteiner, "Current Comparative Table (CCT) automates customized searches of dynamic biological databases", Nucleic Acids Research, 33 (2005)
  17. B. Lenhard, "TFBS: Computational framework for transcription factor binding site analysis", Bioinformatics, 18(8), pp.1135~1136 (2002)
  18. A.M. Lesk, "Introduction to Bioinformatics" (2008), Oxford University Press
  19. D.W. Mount, "Bioinformatics: Sequence and Genome Analysis" (2001), Cold Spring Harbor Laboratory Press
  20. "Open Bioinformatics Foundation"[URL]
  21. L. Pachter, "Algebraic Statistics for Computational Biology" (2005), Cambridge University Press
  22. P.A. Pevzner, "Computational Molecular Biology: An Algorithmic Approach" (2001), The MIT Press
  23. L. Prechelt, "An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl", IEEE Computer, 33, pp.23~29 (2000)
  24. R. Schwartz, "Learning Perl, 5th Edition" (2008), O’Reilly
  25. R.W. Sebesta, "Concepts of programming languages", pp.206~208 (2006), Addison Wesley
  26. S. Shah, "GeneComber: combining outputs of gene prediction programs for improved results", Bioinformatics, 19(10), pp.1296~1297 (2003)
  27. J. Shirazi, "Java Performance Tuning" (2003), O’Reilly
  28. J. Stajich, "The Bioperl toolkit: Perl modules for the life sciences", Genome Res, 12(10), pp.1611~1618 (2002)
  29. J.D. Tisdall, "Beginning Perl for Bioinformatics" (2001), O’Reilly
  30. N. Trivedi, "Alternative parallelization strategies in EST clustering", Lecture Notes in Computer Science, 2763, pp.384~394 (2003)
  31. M.S. Waterman, "Introduction to Computational Biology: Sequences" (1995), CRC Press
  32. J. Zobel, "In-memory hash tables for accumulating text vocabularies", Information Processing Letters, 통권 : 80, pp.271~277 (2001)

관련 논문AI추천

이 간행물의 다른 논문 (9건)