BMC Bioinformatics (Apr 2006)

Bio++: a set of C++ libraries for sequence analysis, phylogenetics, molecular evolution and population genetics

  • Galtier Nicolas,
  • Ranwez Vincent,
  • Glémin Sylvain,
  • Bazin Eric,
  • Gaillard Sylvain,
  • Dutheil Julien,
  • Belkhir Khalid

DOI
https://doi.org/10.1186/1471-2105-7-188
Journal volume & issue
Vol. 7, no. 1
p. 188

Abstract

Read online

Abstract Background A large number of bioinformatics applications in the fields of bio-sequence analysis, molecular evolution and population genetics typically share input/ouput methods, data storage requirements and data analysis algorithms. Such common features may be conveniently bundled into re-usable libraries, which enable the rapid development of new methods and robust applications. Results We present Bio++, a set of Object Oriented libraries written in C++. Available components include classes for data storage and handling (nucleotide/amino-acid/codon sequences, trees, distance matrices, population genetics datasets), various input/output formats, basic sequence manipulation (concatenation, transcription, translation, etc.), phylogenetic analysis (maximum parsimony, markov models, distance methods, likelihood computation and maximization), population genetics/genomics (diversity statistics, neutrality tests, various multi-locus analyses) and various algorithms for numerical calculus. Conclusion Implementation of methods aims at being both efficient and user-friendly. A special concern was given to the library design to enable easy extension and new methods development. We defined a general hierarchy of classes that allow the developer to implement its own algorithms while remaining compatible with the rest of the libraries. Bio++ source code is distributed free of charge under the CeCILL general public licence from its website http://kimura.univ-montp2.fr/BioPP.