EggLib version 2.1 is archived.

Table Of Contents

Previous topic

EggLib documentation

Next topic


This Page

Download and install

Installation from source


To build EggLib from source, you need a C++ compiler supporting the Standard Template Library and a UNIX shell-compatible environment (known as terminal, and available through cygwin on Windows). In addition, the Python development files are needed. These files should be available by default under Windows. In other systems, these files should be available as a separate package python-devel or python-header.

There are two optional dependencies:

  • Bio++ (for egglib 2.1.5: version 2.0.x or higher; for egglib 2.1.6 through 2.1.9: version 2.1.x; for egglib 2.1.10 and higher: version 2.2.x). Bio++ contains a set of C++ libraries for sequence management, population genetics and phylogenetics. If Bio++ is present in the system, it will be automatically used to extend the possibilities of the population genetics functions of Egglib. A notable addition is the computation of the McDonald and Kreitman test table. If Bio++ is not detected, it will be skipped without generating errors.
  • The GNU Scientific Library is needed for the most crucial parts of the ABC features of Egglib (namely the ABC class). If the GSL is not available, this class will not be available, but the rest of the library will be available.

The Python module (egglib-py) requires Python version 2.6 or higher but doesn’t function under Python version 3.0. On some platform, installing the development package of Python will be needed. Part of EggLib functionalities require matplotlib or numpy. The presence of these modules are evaluated dynamically and an error is only reported when attempting to use the corresponding features.

EggLib can use external applications, provided that they are installed and available in the system. If they are absent or not detected, some features might not be available. These programs must be installed independently and their presence is evaluated at build time.

Download source code

Download the following two archives (replace <version> by the actual version number), from the download site:

  • egglib-cpp-<version>.tar.gz for the C++ library
  • egglib-py-<version>.tar.gz for the Python module

Installation procedure

Unpack the C++ library archive and move to the created directory (replace <version> by the actual version number):

$gzip -d egglib-cpp-<version>.tar.gz
$tar xvf egglib-cpp-<version>.tar
$cd egglib-cpp-<version>

Configure the package:

$./configure [options]

Type ./configure --help to view the available options. The options allow you to use non-default tools or install libraries to non-default locations. (For example, ./configure --prefix=$HOME will install the libraries in a lib directory, and the headers in a header directory of your home directory.) The script should exit without mentionning an error.

Compile the libraries:


This will compile all the source code in the current directory. Unless an error is reported, you can next install the libraries in you system directories (in most cases, this step requires super-user rights):

$make install

Upon success and by default, you should have installed the C++ library.

Next step is too install the Python module. Move out from the egglib-cpp directory, unpack the Python package and move in it:

$cd ..
$tar xvf egglib-py-<version>.tar
$cd egglib-py-<version>

Compile it:

$python build

An option --prefix is provided to add an additional search path for headers and libraries of egglib-cpp. If you used --prefix=$HOME to run egglib-cpp’s configure script, you should also then run python build --prefix=$HOME at this stage. The script accepts more options provided by Python’s builtin distutils package.. Type python --help to see the manual page.

If the compilation is successfull, install the package within you Python distribution (probably requires super-user rights):

$python install

You can use the (distutils builtin) option --home to install the module in a non-default location. Refer to Python’s documentation for more details.


Don’t run python install without running python build because it would skip the build_app step and your EggLib installation would be broken.

Detection of external applications

The build_apps command of automatically detects external applications. In case you subsequently install a program and want to use it though Egglib, you can type at any time:

$python build_apps
$python install

You should do the same when you remove a program, or attempting to use a function using this program would result in a message stating that the program in question failed or that output files could not be parsed.

build_apps generate an output like the following:

$running build_apps
ms[+] blastn[+] blastp[+] clustalw[+] muscle[+] tblastn[+] blastx[+]
tblastx[+] makeblastdb[+] phyml[+] dnadist[-] neighbor[-] codeml[+]

In this example, the PHYLIP package and primer3 were not installed. Note that in any case EggLib will be functional, only some functions depending on the corresponding programs will not be available. build_apps rely on default program names and location to detect their presence. In case they are installed in your system but not available in the standard search path you’ll have to modify the file and rebuild to make EggLib aware of their presence (this file includes a short guideline section).

Installation of pre-compiled Python modules

Pre-compiled programs and Python modules are currently available for Windows operating systems. They are available from the download page (refer to the included readme file for more details).

Hosted by  Get seqlib at Fast, secure and Free Open Source software downloads