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

BMC Bioinformatics. 2006 Apr 4;7:188. doi: 10.1186/1471-2105-7-188.


Background: A large number of bioinformatics applications in the fields of bio-sequence analysis, molecular evolution and population genetics typically share input/output 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

Publication types

  • Research Support, Non-U.S. Gov't

MeSH terms

  • Algorithms
  • Amino Acid Sequence
  • Animals
  • Computational Biology / instrumentation
  • Computational Biology / methods*
  • Evolution, Molecular
  • Genetics, Population / methods
  • Humans
  • Models, Statistical
  • Molecular Sequence Data
  • Phylogeny
  • Programming Languages*
  • Sequence Homology, Amino Acid
  • Software