Abstract
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. 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. 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.
MeSH Terms
Algorithms
Amino Acid Sequence
Animals
Computational Biology/instrumentation,methods
Evolution, Molecular
Genetics, Population/methods
Humans
Models, Statistical
Molecular Sequence Data
Phylogeny
Programming Languages
Sequence Homology, Amino Acid
Software
Authors & Affiliations
7 authors, click to expand affiliations / ORCID
Dutheil Julien
CNRS UMR 5171--Génome, Populations, Interactions, Adaptation (GPIA), Université Montpellier 2, France.
[email protected]
Gaillard Sylvain
Bazin Eric
Glémin Sylvain
Ranwez Vincent
Galtier Nicolas
Belkhir Khalid
References (12)
12 references, click to expand
-
The Bioinformatics Template Library--generic components for biocomputing.
Bioinformatics. 2001 Aug;17(8):729-37
PMID: 11524374
-
A structural EM algorithm for phylogenetic inference.
J Comput Biol. 2002;9(2):331-53
PMID: 12015885
-
Libsequence: a C++ class library for evolutionary genetic analysis.
Bioinformatics. 2003 Nov 22;19(17):2325-7
PMID: 14630667
-
The neighbor-joining method: a new method for reconstructing phylogenetic trees.
Mol Biol Evol. 1987 Jul;4(4):406-25
PMID: 3447015
-
The rapid generation of mutation data matrices from protein sequences.
Comput Appl Biosci. 1992 Jun;8(3):275-82
PMID: 1633570
-
GC-biased segregation of noncoding polymorphisms in Drosophila.
Genetics. 2006 Jan;172(1):221-8
PMID: 16157668
-
Design and application of PDBlib, a C++ macromolecular class library.
Comput Appl Biosci. 1994 Dec;10(6):575-86
PMID: 7704656
-
PAML: a program package for phylogenetic analysis by maximum likelihood.
Comput Appl Biosci. 1997 Oct;13(5):555-6
PMID: 9367129
-
Different versions of the Dayhoff rate matrix.
Mol Biol Evol. 2005 Feb;22(2):193-9
PMID: 15483331
-
libcov: a C++ bioinformatic library to manipulate protein structures, sequence alignments and phylogeny.
BMC Bioinformatics. 2005;6:138
PMID: 15938750
-
A model-based approach for detecting coevolving positions in a molecule.
Mol Biol Evol. 2005 Sep;22(9):1919-28
PMID: 15944445
-
Maximum likelihood phylogenetic estimation from DNA sequences with variable rates over sites: approximate methods.
J Mol Evol. 1994 Sep;39(3):306-14
PMID: 7932792