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